Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] помогите с типом char (http://forum.oszone.net/showthread.php?t=196300)

Cherterok 10-01-2011 21:41 1585583

помогите с типом char
 
Здравствуйте, в очередной раз от вас требуеться чтото элементарное))) с типом чар я как таковым не работал. по идее с цифрами он мне не нужен был. но тут мне дали задание чтобы при вводе цифры, в данном случае оценки от 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");
}


это то что мне пишет. не пойму как не может из одного и тогоже перевестись. вот 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 1585709

Правильно писать
Код:

с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 1585743

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

PhilB 11-01-2011 00:19 1585751

Русские буквы можно использовать как обычно - главное только, чтоб кодировка консоли совпадала с кодировкой исходного кода. Тогда проблем не будет.
То есть можно писать смело писать
Код:

сonst char *t= " 3 плохо";

Cherterok 11-01-2011 08:23 1585863

Цитата:

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

дело втом что нигде не совпадает кодировка. я знаю в цмд можно было какуюто команду писать и менять кодировку либо исползовать звездочки. а тут как?
сегодня пробЫвал через Eom както так там. писало ошибки... что делать? можно ли както писать русские буквы через их порядковый номер асц2 таблицы?

Drongo 11-01-2011 18:06 1586263

Cherterok, Кирилица в консоли

El Scorpio 14-01-2011 05:32 1588255

Цитата:

Цитата Cherterok
с типом чар я как таковым не работал. »

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


Время: 00:09.

Время: 00:09.
© OSzone.net 2001-