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

Не реагирует на русский язык - C++

Восстановить пароль Регистрация
 
 
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
04.06.2013, 10:51     Не реагирует на русский язык #1
В cmd Visual C++ 2010 express после какого-то времени работы стали выводится какието каракули там, где должен быть русский язык + на русский язык он вообще не реагирует. вот код телефонной книги
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Телефонная книга
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
 
class Number
{
public:
  string name;
  string number;
  Number(const Number &v): 
    name(v.name),
    number(v.number) {}
  Number() {}
  const Number &operator=(const Number &v)
  {
    name = v.name;
    number = v.number;
    return v;
  }
};
 
int main()
{
  fstream f("file.txt");
  vector<Number> telBook;
  while (true)
  {
    Number t;
    f >> t.name;
    if (f.eof())
      break;
    f >> t.number;
    if (f.eof())
      break;
    telBook.push_back(t);
  }
  while (true)
  {
    cout << ("Имя или стоп - ");
    string name;
    cin >> name;
    if (name == "стоп")
      break;
    for (int i = 0; i < telBook.size(); ++i)
    {
      if (telBook[i].name == name)
    cout << name << " " << telBook[i].number << endl;
    }
  }
    
}
при активации в cmd такая вот билебирда(скрин 1)
имена в file.txt мне пришлось менять все на английский, тк когда я их прописывал на русском программа не реаигировала(скрин 2), а на английском работала как миленькая(скрин 3).
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
// Телефонная книга
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
using namespace std;
 
class Number
{
public:
  string name;
  string number;
  Number(const Number &v): 
    name(v.name),
    number(v.number) {}
  Number() {}
  const Number &operator=(const Number &v)
  {
    name = v.name;
    number = v.number;
    return v;
  }
};
 
int main()
{
  fstream f("file.txt");
  vector<Number> telBook;
  while (true)
  {
    Number t;
    f >> t.name;
    if (f.eof())
      break;
    f >> t.number;
    if (f.eof())
      break;
    telBook.push_back(t);
  }
  while (true)
  {
    cout << ("Name or stop - ");
    string name;
    cin >> name;
    if (name == "stop")
      break;
    for (int i = 0; i < telBook.size(); ++i)
    {
      if (telBook[i].name == name)
    cout << name << " " << telBook[i].number << endl;
    }
  }
    
}
+ 1)прога почему-то не видит первой строчки файла(file.txt)
+ 2) Объясните, как работает и какую роль в программе играет
C++
1
2
3
4
5
6
7
8
9
10
Number(const Number &v): 
    name(v.name),
    number(v.number) {}
  Number() {}
  const Number &operator=(const Number &v)
  {
    name = v.name;
    number = v.number;
    return v;
  }
Пожааалуйста помогите!
Миниатюры
Не реагирует на русский язык   Не реагирует на русский язык   Не реагирует на русский язык  

Вложения
Тип файла: txt file.txt (215 байт, 5 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2013, 10:51     Не реагирует на русский язык
Посмотрите здесь:

C++ Русский Язык!!!
Русский язык в C++ C++
русский язык C++
Русский язык C++
C++ русский язык
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
quicksdk
37 / 5 / 1
Регистрация: 13.04.2011
Сообщений: 193
04.06.2013, 11:07     Не реагирует на русский язык #2
setlocale(LC_ALL, "Russian");

1 топик - 1 вопрос
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
04.06.2013, 11:08     Не реагирует на русский язык #3
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
шрифт Lucida Console
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
04.06.2013, 12:01  [ТС]     Не реагирует на русский язык #4
Пробовал, не помогает. В самой командной строке всё нормально, а вот после компиляции при запуске ехе-шника билебирда
и реестре менял, и шрифты в свойствах менял, и в строке визуала менял, не катит. Такая же проблема была ещё когда я на dev-cpp работал. только на английский реагирует.
Игорь с++
 Аватар для Игорь с++
429 / 452 / 15
Регистрация: 26.01.2011
Сообщений: 2,029
04.06.2013, 12:13     Не реагирует на русский язык #5
Цитата Сообщение от Domonion Посмотреть сообщение
Такая же проблема была ещё когда я на dev-cpp работал.
вот вывод на dev-cpp
Миниатюры
Не реагирует на русский язык  
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
04.06.2013, 14:58  [ТС]     Не реагирует на русский язык #6
Значит никто не гугу как исправить?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.06.2013, 15:08     Не реагирует на русский язык #7
Цитата Сообщение от Domonion Посмотреть сообщение
Пробовал, не помогает
Пробовал что? Как? Так пробовали?
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
шрифт Lucida Console
Как сменить шрифт в консоли на Lucida Console знаете?

Добавлено через 3 минуты
Пишите:
Цитата Сообщение от Domonion Посмотреть сообщение
В самой командной строке всё нормально, а вот после компиляции при запуске ехе-шника билебирда
И в тоже время:
Цитата Сообщение от Domonion Посмотреть сообщение
В cmd Visual C++ 2010 express после какого-то времени работы стали выводится какието каракули
Так есть в консоли каракули или нет?
Croessmah
04.06.2013, 18:19
  #8

Не по теме:

Цитата Сообщение от alsav22 Посмотреть сообщение
Как сменить шрифт в консоли на Lucida Console знаете?
Это мне вопрос?

Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
04.06.2013, 19:41  [ТС]     Не реагирует на русский язык #9
В обычной cmd всё нормально. в сmd визуала нормально. ОДНАКО!!! при запуске скомпилированной программы вылезают каракули. а вот сейчас список того, что я пробовал:
1. в реестре по путю hkey_local_machine\system\currentcintrolset\control\nls\codepage 1250-1255 значения менял
2. кодировка стоит люцида консоль
3. в код setlocale(0,""); вставил
4. чтото там chcp 1251 или что-то в этом роде писал ( уже не помню)
5. юникод в панеле управления русский
6. в левом верхнем углу жмакал, там тож менял на люциду консоль.
ничего не помогааааеееееет!
Миниатюры
Не реагирует на русский язык  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.06.2013, 21:48     Не реагирует на русский язык #10
Цитата Сообщение от Domonion Посмотреть сообщение
после какого-то времени работы
Из этого следует, что сначала всё было нормально. Так? ОС какая?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.06.2013, 22:03     Не реагирует на русский язык #11
В пустом проекте откомпилируйте в Debug этот код (перед этим в свойствах проекта - Свойтсва конфигурации - Общие - Набор символов, установите - Не задано):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <cstdlib>
#include <Windows.h>
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    cout << "Русский язык" << endl;
    
    system("pause");
    return 0;
}
Запустите из студии и сделайте скрин, типа этого (чтобы были видны файлы проекта, код и вывод на консоль). Потом запустите .exe и тоже сделайте скрин.
Миниатюры
Не реагирует на русский язык  
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 08:39  [ТС]     Не реагирует на русский язык #12
да. сначала, некоторое время всё было нормально, потом что-то произошло, вылезла ошибка , и стали такие вот каракули. ПРИЧЁМ! я смотрел в инете про сбитую кодирувку командной строки, но мои каракули не схожи с ихними. Вот я тут написал, поскольку сам в замешательстве.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 08:45     Не реагирует на русский язык #13
Скиньте скомпилированный exe'шник. Только готовый release,в котором каракули
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 09:39  [ТС]     Не реагирует на русский язык #14
Вот. file.txt в первом сообщении.
Вложения
Тип файла: rar Урок20.rar (21.9 Кб, 3 просмотров)
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
05.06.2013, 09:50     Не реагирует на русский язык #15
Цитата Сообщение от Domonion Посмотреть сообщение
В обычной cmd всё нормально. в сmd визуала нормально. ОДНАКО!!! при запуске скомпилированной программы вылезают каракули. а вот сейчас список того, что я пробовал:
В винде для консольных программ настройки отдельно хранятся для каждой программы. Попробуйте в реестре удалить все индивидуальные настройки, оставьте только по умолчанию, и там пропишите шрифт Lucida Console.

Добавлено через 4 минуты
Ветка реестра \HKEY_CURRENT_USER\Console, подветок она содержать не должна. Создаете строковый параметр с именем FontName, значение LucidaConsole.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:00     Не реагирует на русский язык #16
Цитата Сообщение от Domonion Посмотреть сообщение
file.txt в первом сообщении.
и он в кодировке UTF-8
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 10:04     Не реагирует на русский язык #17
Цитата Сообщение от Domonion Посмотреть сообщение
да. сначала, некоторое время всё было нормально, потом что-то произошло, вылезла ошибка , и стали такие вот каракули. ПРИЧЁМ! я смотрел в инете про сбитую кодирувку командной строки, но мои каракули не схожи с ихними. Вот я тут написал, поскольку сам в замешательстве.
Вы проблему хотите решить? Почему на просьбы не реагируете (11 пост)?
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 10:08  [ТС]     Не реагирует на русский язык #18
для непосвященных?
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,831
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:09     Не реагирует на русский язык #19
Проверьте кодировку файла с исходным кодом. Такого же эффекта как у Вас удалось добиться преобразовав исходный код в UTF-8 без BOM.
Попробуйте преобразовать его в ANSI
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 10:10     Не реагирует на русский язык
Еще ссылки по теме:

Русский язык в консоли C++
C++ Русский язык
Русский язык C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 10:10     Не реагирует на русский язык #20
Цитата Сообщение от Domonion Посмотреть сообщение
для непосвященных?
Я так понимаю, что не хотите?
Yandex
Объявления
05.06.2013, 10:10     Не реагирует на русский язык
Ответ Создать тему
Опции темы

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