| olegenty | 
| Отправлено: 23.04.2004, 11:44 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 | CODE  |   
cout.unsetf(ios::dec); 
 |  
 
  
вот это перед 
| CODE  |   
cout.setf(ios::hex); 
 |  
 
  
добавь, и всё будет, как ты хочешь ))
 | 
  | 
| NEOBIR | 
| Отправлено: 23.04.2004, 12:30 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 млин откуда вы все такие умные? 
получилось, а в книге про ето даж ни слова.  
  
Спасибо.
  
Отредактировано NEOBIR — 23/04/2004, 13:34  | 
  | 
| olegenty | 
| Отправлено: 23.04.2004, 13:12 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 суть в том, что и без unsetf(ios::dec) должно было быть всё в порядке, насколько мне нашептала память. потому что setf(ios::hex) должно было отменить предыдущий формат. почему этого не произошло — ХЗ (хрен знает), надо инфу читать...
 | 
  | 
| gauldot | 
| Отправлено: 23.04.2004, 13:17 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 22 
  
  
 | 
 Последний твой код — рабочий.
  
Результат работы (как и должно быть): 
Arg1 =0x4660 
Arg2 =0x255 
~nArg1 =0x-4661 
~nArg2 =0x-256 
nArg1&nArg2=0x52 
nArg1|nArg2=0x4863 
nArg1^nArg2=0x4811
  
А что в книге другой результат?
  
P.s. Создание консольного приложения: File->New->ConsoleWizard 
Галочки: С++, ConsoleApplication и хватит.  | 
  | 
| NEOBIR | 
| Отправлено: 23.04.2004, 15:44 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 Результат то верный, но он не в 16тиричном виде, в пример задумывался чтоб перевест ив 16тиричную, ив книги как раз так и написано, после добавки все стало ОК, яж написал, видать мож компиляторы разные, книга то писалась не под билдер 6.0.
  
 | 
  | 
| marconi | 
| Отправлено: 23.04.2004, 17:23 | 
 
 
 | 
 
  
Станционный диспетчер 
 
Группа: Участник 
Сообщений: 86 
  
  
 | 
 А дальше сам  
 | 
  | 
| NEOBIR | 
| Отправлено: 25.04.2004, 09:48 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 Опять проблема  
  
Как сделать чтоб мои примеры отображали русский язык при выводе текста на экран?
  
Все делаю в билдере 6, в нем русский видно, но когда программа скомпилирована и запущена в ней выводится абра-кадабра вместо кирилицы  
  
как сделать чтоб отображался русский?
  
В меню Project, есть добавка языка, я вроде добавил русский, но всеравно не сработало  
  
Отредактировано NEOBIR — 25/04/2004, 10:51  | 
  | 
| NEOBIR | 
| Отправлено: 25.04.2004, 10:28 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 Млин, да что такое, опять не получается, вроде все работает а общую сумму не выводит, говорит 0, хотя должен быть не 0, что не так??? все как в книге сделал???
  
| CODE  |  
  
#include<conio.h> 
#pragma hdrstop 
#pragma argsused 
#include<stdio.h> 
#include<iostream.h>
 
  
// sumSequence — суммирует последовательность 
// чисел, введенных с клавиатуры, пока 
// пользователь не введет отрицательное число 
// возвращает сумму введенных чисел
  
int sumSequence(void) 
{
  
//бесконечный цикл 
int accumulator=0;
  
for(;;) 
{
  
// ввод следкющего числа 
int value=0; 
cout << "Vvedite sleduyushee chislo: "; 
cin >> value;
  
// если оно отрицательное... 
if(value<0) 
{ 
// ...тогда выходим из цикла 
break; 
}
  
// иначе добавляем число к переменной accumulator 
accumulator=accumulator+value; 
}
  
// возвращяем значение суммы 
return accumulator; 
}
  
int main(int argc, char* argv[]) 
{ 
cout << "Eta programma summiruet posledovatelnosti\n" 
    << "chisel. Kajdaya posledovatelnost\n" 
    << "zakanchivaetsya otricatelnim chislom.\n" 
    << "Vvod seriy zavershaetsya vvodom \n" 
    << "dvuh otricatelnih chisel podryad\n";
  
// суммируем последовательности чисел... 
int accumulatedValue;
  
do 
{ 
// суммируем последовательности чисел введенных с клавиатуры 
cout << "\nVvedite sleduyushuyu posledovatelnost\n";
  
accumulatedValue=sumSequence();
  
// вывод общей суммы на экран 
cout << "\nObshaya summa ravna " 
    << accumulatedValue 
    << "\n";
  
// пока возвращаемая сумма не равна 0 
} while (accumulatedValue!=0); 
cout << "Programma zavershena\n";
  
getch(); 
       return 0; 
}
  
 |  
 
  
подможите люди !!!  | 
  | 
| NEOBIR | 
| Отправлено: 25.04.2004, 18:28 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 ауууууууууу 
куда все пропали????????  | 
  | 
| Иван | 
| Отправлено: 25.04.2004, 20:56 | 
 
 
 | 
 
  
Машинист паровоза 
 
Группа: Участник 
Сообщений: 207 
  
  
 | 
 To olegenty  спасибо конечно за ссылку (Страуструп), только вот трудновато читать без линков на каждую главу, не весит ли где-то другая версия, у которой "интерфейс дружелюбней, и еще просьба, тот самый Borland C++ 3.11 нельзя ли как то в upload выставить, или ссылочку дайте, где его скачать можно.
  
To NEOBIR| QUOTE  |  ауууууууууу 
куда все пропали????????  |  
  
выходные ведь  
  
Отредактировано Иван — 25/04/2004, 22:17
 | 
  | 
| Георгий | 
| Отправлено: 25.04.2004, 22:54 | 
 
 
 | 
  
Почетный железнодорожник 
 
Группа: Модератор 
Сообщений: 874 
  
  
 | 
 NEOBIR 
| QUOTE  |  ауууууууууу 
куда все пропали????????  |  
 
  
работает твой код — всё именно так, как написано: 
| QUOTE  |  "Eta programma summiruet posledovatelnosti\n" 
   << "chisel. Kajdaya posledovatelnost\n" 
   << "zakanchivaetsya otricatelnim chislom.\n" 
   << "Vvod seriy zavershaetsya vvodom \n" 
   << "dvuh otricatelnih chisel podryad\n"; |  
  
т.е. выполняет суммирование чисел каждой последовательности.  | 
  | 
| NEOBIR | 
| Отправлено: 26.04.2004, 10:11 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
| QUOTE (Георгий @ 25/04/2004, 23:56) |  NEOBIR 
| QUOTE  |  ауууууууууу 
куда все пропали????????  |  
 
  
работает твой код — всё именно так, как написано: 
| QUOTE  |  "Eta programma summiruet posledovatelnosti\n" 
<< "chisel. Kajdaya posledovatelnost\n" 
<< "zakanchivaetsya otricatelnim chislom.\n" 
<< "Vvod seriy zavershaetsya vvodom \n" 
<< "dvuh otricatelnih chisel podryad\n"; |  
  
т.е. выполняет суммирование чисел каждой последовательности. |  
  
да выполняет, но потом он должен выполнять сложение всех сумм которые получились в результате сложения последовательностей, а вот тут как раз и 0 всегда получается, что не так??  | 
  | 
| Георгий | 
| Отправлено: 26.04.2004, 10:34 | 
 
 
 | 
  
Почетный железнодорожник 
 
Группа: Модератор 
Сообщений: 874 
  
  
 | 
 попробуй подправить вот так:| CODE  |   
... 
// суммируем последовательности чисел... 
int accumulatedValue=0;
  
do 
{ 
// суммируем последовательности чисел введенных с клавиатуры 
cout << "\nVvedite sleduyushuyu posledovatelnost\n";
  
const int local_summ=sumSequence();
  
accumulatedValue+=local_summ;
  
// вывод общей суммы на экран 
cout << "\nObshaya summa ravna " 
   << accumulatedValue 
   << "\n";
  
// пока возвращаемая сумма не равна 0 
} while (local_summ!=0); 
cout << "Programma zavershena\n";
  
getch(); 
      return 0; 
} |     | 
  | 
| olegenty | 
| Отправлено: 26.04.2004, 11:20 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 а для корректного отображения отечественной кодировки пользуйся следующими функциями:
  
| CODE  |   
bool CharToOem( 
   LPCTSTR lpszSrc, // pointer to string to translate   
   LPSTR lpszDst  // pointer to translated string 
); 
 |   - для перевода в OEM-ю кодировку для консоли (суть 1251 в 866)
  
и 
| CODE  |   
bool OemToChar( 
   LPCSTR lpszSrc, // pointer to string to translate 
   LPTSTR lpszDst  // pointer to buffer for translated string   
); 
 |   - для перевода считанной в процессе выполнения инфы из OEM обратно в ANSI.
  
это системные функции Windows API
 | 
  | 
| NEOBIR | 
| Отправлено: 26.04.2004, 11:27 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 так компилято ругается на эту строку: 
| CODE  |   
} while (local_summ!=0); 
 |  
 
  
говорит: 
[C++ Error] Unit1.cpp(68): E2451 Undefined symbol 'local_summ'
  
вроде все правильно написано, что ему не нравится?  | 
  | 
| NEOBIR | 
| Отправлено: 26.04.2004, 11:36 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
| QUOTE (olegenty @ 26/04/2004, 12:22) |  а для корректного отображения отечественной кодировки пользуйся следующими функциями:
  
| CODE  |   
bool CharToOem( 
LPCTSTR lpszSrc, // pointer to string to translate  
LPSTR lpszDst // pointer to translated string 
); 
 |   - для перевода в OEM-ю кодировку для консоли (суть 1251 в 866)
  
и 
| CODE  |   
bool OemToChar( 
LPCSTR lpszSrc, // pointer to string to translate 
LPTSTR lpszDst // pointer to buffer for translated string  
); 
 |   - для перевода считанной в процессе выполнения инфы из OEM обратно в ANSI.
  
это системные функции Windows API |  
  
блин все хорошо, вот тока куда вставить этот блок??? будь добр на моем примере покажи куда вставить??? 
вот пример, я написал по-русски первое сообщение:
  
| CODE  |  
  
#include<conio.h> 
#pragma hdrstop 
#pragma argsused 
#include<stdio.h> 
#include<iostream.h>
 
  
// sumSequence — суммирует последовательность 
// чисел, введенных с клавиатуры, пока 
// пользователь не введет отрицательное число 
// возвращает сумму введенных чисел
  
int sumSequence(void) 
{
  
//бесконечный цикл 
int accumulator=0;
  
for(;;) 
{
  
// ввод следкющего числа 
int value=0; 
cout << "Vvedite sleduyushee chislo: "; 
cin >> value;
  
// если оно отрицательное... 
if(value<0) 
{ 
// ...тогда выходим из цикла 
break; 
}
  
// иначе добавляем число к переменной accumulator 
accumulator=accumulator+value; 
}
  
// возвращяем значение суммы 
return accumulator; 
}
  
int main(int argc, char* argv[]) 
{ 
cout << "Эта программа суммирует последовательности\n" 
   << "чисел. Каждая последовательность\n" 
   << "заканчивается отрицательным числом.\n" 
   << "Ввод серий заканчивается вводом\n" 
   << "двух отрицательных чисел подряд\n";
  
// суммируем последовательности чисел... 
int accumulatedValue;
  
do 
{ 
// суммируем последовательности чисел введенных с клавиатуры 
cout << "\nVvedite sleduyushuyu posledovatelnost\n";
  
accumulatedValue=sumSequence();
  
// вывод общей суммы на экран 
cout << "\nObshaya summa ravna " 
   << accumulatedValue 
   << "\n";
  
// пока возвращаемая сумма не равна 0 
} while (accumulatedValue!=0); 
cout << "Programma zavershena\n";
  
getch(); 
      return 0; 
} 
 |     | 
  | 
| olegenty | 
| Отправлено: 26.04.2004, 14:22 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Вот тебе пример для работы с русскими буквами в окне. Для него в новом проекте установи флажок VCL — я там использую функцию ShowMessage и класс AnsiString.
  
| CODE  |   
//---------------------------------------------------------------------------
  
#include <vcl.h> 
#include <iostream.h> 
#include <conio.h> 
#pragma hdrstop
  
//---------------------------------------------------------------------------
  
#pragma argsused 
int main(int argc, char* argv[]) 
{ 
   char *szMsg = "Введите что-нибудь на русском языке:"; 
   if (CharToOem(szMsg, szMsg)) // если преобразование удалось 
   { 
       cout << szMsg << endl; // вывести приглашение ввода 
       cin >> szMsg; // ввести строку на русском языке, хотя язык не важен 
       if (OemToChar(szMsg, szMsg)) // если преобразование удалось 
       { 
           ShowMessage(AnsiString(szMsg)); // показать считанную информацию 
                                           // в виде сообщения Windows 
       } 
   }
 
 
  
   getch(); 
   return 0; 
} 
//--------------------------------------------------------------------------- 
 |   
 | 
  | 
| NEOBIR | 
| Отправлено: 27.04.2004, 06:11 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 да, спасибо за пример, 
но ты так и не ответил ка кмне сделать, именно в моём примере! чтобы сообщения выводились на русском а не абракадаброй??? чтоб читать можно было??? Куда что добавить?  | 
  | 
| olegenty | 
| Отправлено: 27.04.2004, 09:10 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 отлажу — положу. есть ма-а-а-а-а-ленький трабл. смешной, уржался я с него, но сначала придумаю, как избавиться. прикольно натыкаться на траблы в азах... (ой давно это было... и суть трабла понятна, но времени нет, я на работе...)
 | 
  | 
| NEOBIR | 
| Отправлено: 27.04.2004, 09:25 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 ок   
жду  
  
азы млин какие-то замудренные, если с опытом народ, мается то как мнеж научится ???  
  
Отредактировано NEOBIR — 27/04/2004, 10:28  | 
  | 
| olegenty | 
| Отправлено: 27.04.2004, 09:30 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 не, там трабла из другой области. пример-то твой на 3.11 без проблем работал бы.
 | 
  | 
| NEOBIR | 
| Отправлено: 27.04.2004, 12:13 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 блин ну вылож ты 3,11 а то я тут как д-к со ступой в билдере дро***сь с книжкой писаной под ГНУ   в осла или на фтп я качну, или мож ссылку знаешь где качнуть???
  
ты помница писал что у тебя на винте болтается??  | 
  | 
| olegenty | 
| Отправлено: 27.04.2004, 13:34 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 да меня раком, пардон, трахнут, за такой исходящий траффик, вот в чём беда...
 | 
  | 
| NEOBIR | 
| Отправлено: 27.04.2004, 14:22 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 что много весит? 
 | 
  | 
| olegenty | 
| Отправлено: 27.04.2004, 14:25 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 установочник в архиве — 20М
 | 
  | 
| Valdemar | 
| Отправлено: 27.04.2004, 15:23 | 
 
 
 | 
  
Мастер участка 
 
Группа: Участник 
Сообщений: 433 
  
  
 | 
 Могу выслать на e-mail Borland C++ 3.1. В архиве 2,1Мб. Только не знаю полный он или чего-то не хватает, но вроде работает.  | 
  | 
| NEOBIR | 
| Отправлено: 27.04.2004, 15:31 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 ок, спасиб, давай на neobir@mail.ru, попробуем его  | 
  | 
| Valdemar | 
| Отправлено: 28.04.2004, 08:04 | 
 
 
 | 
  
Мастер участка 
 
Группа: Участник 
Сообщений: 433 
  
  
 | 
 Отправил  | 
  | 
| NEOBIR | 
| Отправлено: 28.04.2004, 19:49 | 
 
 
 | 
  
Дежурный стрелочник 
 
Группа: Участник 
Сообщений: 31 
  
  
 | 
 спасибо получил !
  
Посоветуйте толковую книгу по С++ (не билдеру итд) чтоб с азов и понятно было, с самого начала, с чего начать ??? 
А то прям маюсь  
  
 | 
  | 
| olegenty | 
| Отправлено: 29.04.2004, 06:47 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 Бъерн Страуструп, "Введение в язык программирования С++" (или как-то так называется). Второе или более поздние издания.
 | 
  |