Войти

Показать полную графическую версию : [решено] помогите с типом char


Cherterok
10-01-2011, 21:41
Здравствуйте, в очередной раз от вас требуеться чтото элементарное))) с типом чар я как таковым не работал. по идее с цифрами он мне не нужен был. но тут мне дали задание чтобы при вводе цифры, в данном случае оценки от 2 до 5 программа просто выводила текст что эта оценка значит. итак вот 2 варианта программы. я был в шоке когда они не заработали как нужно.

#include <iostream>
#include <math.h>
using namespace std;

int main()
{
int x;
const char t= " 3 bad";
const char y= "4 good";
const char h= "5 nice";

cout<<"Vvedite x \n";
cin>>x;
if (x=3)
{
cout<<t;
}
if (x=4)
{
cout<<y;
}
if (x=5)
{
cout<<h;
}
system("pause");
}

http://s002.youpic.su/pictures/1294682400/777cab11f031629685cb58792c4ceee5.jpg
это то что мне пишет. не пойму как не может из одного и тогоже перевестись. вот 2 вариант программы


#include <iostream>
#include <math.h>
using namespace std;

int main()
{
int x;
const char t;

cout<<"Vvedite x \n";
cin>>x;
if (x=3)
{
cout<<"3 - bad \n";
}
if (x=4)
{
cout<<"4 - good \n";
}
if (x=5)
{
cout<<"5 - nice \n";
}
system("pause");
}

кто что скажет?

PhilB
10-01-2011, 23:28
Правильно писать

сonst char *t= " 3 bad";
const char *y= "4 good";
const char *h= "5 nice";


Вы же задаете не одиночный символ, а строку, т.е. нужно использовать указатель.

И еще
if (x=3)
Эта строка присваивает x значение 3, а вам как я полагаю нужно сравнить на равенство.
следует написать
if (x==3)

Cherterok
11-01-2011, 00:08
PhilB, все спасибо, заработало. :)
и чисто такой вопросик как выводить русские буквы?? я видел там таблица АСЦ 2 кодов есть там у каждой русской буквы есть свой номер . но как его вывести шоб без иероглифов?

PhilB
11-01-2011, 00:19
Русские буквы можно использовать как обычно - главное только, чтоб кодировка консоли совпадала с кодировкой исходного кода. Тогда проблем не будет.
То есть можно писать смело писать сonst char *t= " 3 плохо";

Cherterok
11-01-2011, 08:23
Русские буквы можно использовать как обычно - главное только, чтоб кодировка консоли совпадала с кодировкой исходного кода. Тогда проблем не будет.
То есть можно писать смело писать
Код:
сonst char *t= " 3 плохо"; »
дело втом что нигде не совпадает кодировка. я знаю в цмд можно было какуюто команду писать и менять кодировку либо исползовать звездочки. а тут как?
сегодня пробывал через Eom както так там. писало ошибки... что делать? можно ли както писать русские буквы через их порядковый номер асц2 таблицы?

Drongo
11-01-2011, 18:06
Cherterok, Кирилица в консоли (http://www.forum.oszone.net/thread-129824.html)

El Scorpio
14-01-2011, 05:32
с типом чар я как таковым не работал. »
Самое правильное при работе с типом char - не использовать тип char
Серьёзно. Операции с символьными массивами требуют от программиста очень точного понимания сути происходящих процессов и огромной аккуратности в написании кода.
Для работы со строками лучше всего использовать объекты строковых классов (string, AnsiString и т.д.), которые скрывают в себе все операции с блоками оперативной памяти, обеспечивая её правильное выделение, освобождение и контроль размеров.




© OSzone.net 2001-2012