Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 98, средняя оценка - 4.91
Гость
Сообщений: n/a
#1

Иероглифы вместо русских букв и Красная строка - C++

20.05.2007, 20:27. Просмотров 12023. Ответов 21
Метки нет (Все метки)

Здравствуйте! Я в этом деле новичок, поэтому прошу помощи:
1) Почему у меня вместо русских букв ставятся иероглифы? Когда печатаю английскими, все идет.
2) Какая команда отвечает за красную строку?

PS: Поиск использовал, но ответа не нашел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.05.2007, 20:27     Иероглифы вместо русских букв и Красная строка
Посмотрите здесь:

Вывод в документ: китайские иероглифа вместо русских или английских букв C++
Иероглифы вместо русских букв C++
Дана строка с набором случайных символов, при вводе 10 букв первые 5 букв становятся большими , вторые 5 букв маленькими C++
Вывод иероглифов вместо русских символов C++
_getch() в цикле выводит бред вместо русских букв C++
При работе с символами адрес вместо адреса иероглифы, а с символьными массивами вобще ошибки. C++
C++ Дана строка. Подсчитать общее колличество прописных и строчных латинских и русских букв и вывести на консоль количество
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 11:00     Иероглифы вместо русских букв и Красная строка #2
Если пишеш в консоле то подключаеш библиотеку <windows.h>
и один раз перед выводом текста на консоль пишеш две строчки
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
когда запустиш консоль нажмеш правой мышю на строку заголовка и выбереш свойства->выдереш рифт->Lusida Console
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 11:02     Иероглифы вместо русских букв и Красная строка #3
А перед тем местом где тебе нада красная строка пишеш \t
Гость
Сообщений: n/a
21.05.2007, 13:59     Иероглифы вместо русских букв и Красная строка #4
Извините, но я ничего не понял.
Вот мой код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream><windows.h>
using namespace std;
 
int main()
{
    double km, m;
 
    cout << "Проверка: ";
    cin >> km;
 
    m=km*1000;
 
    cout << "Метров: " << m;
 
    system("PAUSE");
 
    return 0;
}
<windows.h> я добавил, а вот куда ставить вот это:
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
я не понял.

Насчет красной строки тоже не выходит.
Я хочу, чтобы после вывода метров, фраза:
Для продолжения нажмите любую клавишу...
Шла с красной строки, а не сразу после числа.

Заранее спасибо.
Гость
Сообщений: n/a
21.05.2007, 16:11     Иероглифы вместо русских букв и Красная строка #5
С красной строкой понял, надо было просто девять раз подряд написать /t.
Best
0 / 0 / 0
Регистрация: 21.05.2007
Сообщений: 7
21.05.2007, 16:13     Иероглифы вместо русских букв и Красная строка #6
Т.е. \t.
Ошибочка вышла.
А неужели нету другого тега?

Еще один вопрос возник:
Что еще есть кроме int?
Мне нужен такой диапозон, который принимает пробел.
Я сделал прогу if else, так вот if у меня с пробелом.
mik-a-el
CyberForum Owner
56920 / 36670 / 231
Регистрация: 10.04.2006
Сообщений: 12,642
21.05.2007, 16:22     Иероглифы вместо русских букв и Красная строка #7
Цитата Сообщение от Гость
2) Какая команда отвечает за красную строку?
Попробуй \n
Best
0 / 0 / 0
Регистрация: 21.05.2007
Сообщений: 7
21.05.2007, 16:24     Иероглифы вместо русских букв и Красная строка #8
О спасибо, с красной строкой разобрались, остались иероглифы.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 18:12     Иероглифы вместо русских букв и Красная строка #9
SetConsoleCP и SetConsoleOutputCP пишется в int main();
А \n перенос коретки на новую строку а красная строка ето отступ после перехода на
новую строку, либо я не понял чето тебе надо
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 18:17     Иероглифы вместо русских букв и Красная строка #10
И еще пишется вот-так:
#include <iostream>
#include <windows.h>
а вот эта запись не правильна
#include <iostream><windows.h>
вот только вопрос- какого компилятор не ругается?
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 18:19     Иероглифы вместо русских букв и Красная строка #11
Цитата Сообщение от Best
Еще один вопрос возник:
Что еще есть кроме int?
Мне нужен такой диапозон, который принимает пробел.
Я сделал прогу if else, так вот if у меня с пробелом.
что ты имееш в виду?
mik-a-el
CyberForum Owner
56920 / 36670 / 231
Регистрация: 10.04.2006
Сообщений: 12,642
21.05.2007, 18:25     Иероглифы вместо русских букв и Красная строка #12
Цитата Сообщение от Best
О спасибо, с красной строкой разобрались, остались иероглифы.
chcp 1251 - смена кодировки самой консоли.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 21:23     Иероглифы вместо русских букв и Красная строка #13
Ты это откуда взял??
Я такого не знаю, а SetConsoleCP(1251); и SetConsoleOutputCP(1251);
работают только есло ПРАВИЛЬНО БИБЛИОТЕКИ ВКЛЮЧАТЬ!!!
дальше все как писал раньше
Best
0 / 0 / 0
Регистрация: 21.05.2007
Сообщений: 7
21.05.2007, 21:24     Иероглифы вместо русских букв и Красная строка #14
Большое всем спасибо. Иероглифы пропали, красная строка появилась.
Теперь остался вот этот вопрос:
Что еще есть кроме int?
Мне нужен такой диапозон, который принимает пробел.

Просто я сделал прогу, которая при вводе правильного слова говорит:
ответ правильный
а если введешь не то:
Ответ неправильный
Короче функция if else.
Так вот это слово я хочу заменить на фразу, которая имеет пробелы.
Но С++ почему-то жалуется на них(пробелы).
Как я понял из-за ограничения в int.
Так вот какой диапозон надо задать? Char тоже не подходит.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 21:32     Иероглифы вместо русских букв и Красная строка #15
Если ты хочеш
int if else()
{
\\...
}
или int if else;
то ничего не выйдет, а первый вариант ето функция если без int main(){\\...}
то прога вообще не скомпилится т.к. это главная ф-ция и без нее не как
если ты хочеш так назвать то через _ if_else, и тем боле if и else
ключевые слова и ими не функции и переменные ими называть нельзя
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
21.05.2007, 21:35     Иероглифы вместо русских букв и Красная строка #16
име функции или переменной не может состоять из двух слов(правиль кода C\C++)
ичить немного вниматеельнее надо
Best
0 / 0 / 0
Регистрация: 21.05.2007
Сообщений: 7
21.05.2007, 21:48     Иероглифы вместо русских букв и Красная строка #17
Короче вот код проги:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cstdlib>
#include <windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int parol;
    int enter;
 
    parol = 16;
 
    cout << ":> ";
    cin >> enter;
 
    if(enter == parol) cout << "Правильно";
    else cout << "Неправильно";
 
    cout << "\n";
 
    system("PAUSE");
 
    return 0;
}
Я хочу вместо кода 16 поставить код:
1(здесь пробел)6
Т.е.:
1 6

Так можно или нет? И если можно, то как?

PS: Даже в паскале можно было.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
22.05.2007, 09:11     Иероглифы вместо русских букв и Красная строка #18
Конечно!!С первым проблем не будет - пишеш char parol[n]="1 6"; где n -размерность
массива в общем открой книгу почитай про массивы, а в паскале(если я не ошибаюся)
был string -строак;
а с вводом с клавиатуры посложнее;
вот пример кода который получает с клавиатуры текст с пробелом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    char cc[10];
    int i=0;
    while(!kbhit())
    {
        char c=_getch();
        cout<<c;
        if(c==13)
        {
            cout<<endl;
            break;
        }
        cc[i]=c;
        i++;
    }
    cc[i]='\0';
    cout<<cc;
вся беда в том что в С\С++ пробел это символ-ражделитель при вводе с клавиатуры
и еще если надо будет сравнивать строки типа char c[10],cc[10];if(c=cc)
то нужно сравнивать символы
C++
1
2
3
4
5
6
bool f=true;
for(int i=0;i<10;i++)
{
if(c[i]!=cc[i])
f=false;
}
Best
0 / 0 / 0
Регистрация: 21.05.2007
Сообщений: 7
23.05.2007, 11:50     Иероглифы вместо русских букв и Красная строка #19
Все с паролем разобрался.
Теперь такой вопрос:
Как сделать так, чтобы после завершения программы, она снова запускалась.
Чтобы не закрывалась есть код:
system("PAUSE")
А какой код, чтобы перезапускалась?

Просто когда у меня вводишь пароль прога закрывается.
А мне надо чтобы была вторая попытка.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2007, 12:00     Иероглифы вместо русских букв и Красная строка
Еще ссылки по теме:

C++ Созданная программа вместо русских бук выдает иероглифы
C++ Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв
Русифицировать консоль (кракозябры вместо русских букв) C++
Вместо текста компилятор выдает иероглифы C++
Сменить кодировку. Вместо текста иероглифы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
mik-a-el
CyberForum Owner
56920 / 36670 / 231
Регистрация: 10.04.2006
Сообщений: 12,642
23.05.2007, 12:00     Иероглифы вместо русских букв и Красная строка #20
Цитата Сообщение от Best
Просто когда у меня вводишь пароль прога закрывается.
А мне надо чтобы была вторая попытка.
Ради этого делать перезапуск - по меньшей мере криво. Делай в цикле запрос пароля до тех пор, пока не будет получен правильный или по другому условию.
Yandex
Объявления
23.05.2007, 12:00     Иероглифы вместо русских букв и Красная строка
Ответ Создать тему
Опции темы

Текущее время: 15:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru