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 NEOBIRQUOTE | ауууууууууу
куда все пропали???????? |
выходные ведь
Отредактировано Иван — 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
|
Бъерн Страуструп, "Введение в язык программирования С++" (или как-то так называется). Второе или более поздние издания.
|
|