Форум программистов, компьютерный форум 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++ русский язык
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:16     Не реагирует на русский язык #21
Попробуйте заменить свои файлы на те, что в архиве и скомпилировать проект. Они аналогичны Вашим(с SetConsoleCP и т.д.), просто в другой кодировке
ansi_code.zip
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 10:21  [ТС]     Не реагирует на русский язык #22
для aslav22. я не заметил пост. Сижу через модем, так что не всё прогружается. Вот. Только сразу говорю, проблема не решилась. К тому же я писал, что пробовал эти методы. Вы тоже не заметили пост.
ой. я не те файлы прикрепил, постом ниже будут те. но проблема не решилась.
Миниатюры
Не реагирует на русский язык   Не реагирует на русский язык  
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:24     Не реагирует на русский язык #23
Цитата Сообщение от Domonion Посмотреть сообщение
К тому же я писал, что пробовал эти методы.
в приведенных скриншотах отсутствуют строчки
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
2
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Добавлено через 1 минуту
А на скриншоте alsav22 они есть
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 10:25  [ТС]     Не реагирует на русский язык #24
Цитата Сообщение от Domonion Посмотреть сообщение
ой. я не те файлы прикрепил, постом ниже будут те. но проблема не решилась.
вах-вах-вах
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:26     Не реагирует на русский язык #25
Пост 21 попробуйте выполнить
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 10:40  [ТС]     Не реагирует на русский язык #26
Для aslav. Твоя программа работает, но для моей волшебные строчки
C++
1
2
SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
не помогли.
Огромное спасибо Croessmah! Да, дело было в кодировке, всё заработало.
Извини, пожалуйста, kazak, из-за моего медленного интеренета тебя не прогрузило.
Однако тема не закрыта! Вы же не забыли
Цитата Сообщение от Domonion Посмотреть сообщение
+ 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;
  }
Пожааалуйста помогите!
Скрины прекреплять не удается, инет тормозит(хотя они весят там по мб 1-2)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.06.2013, 10:45     Не реагирует на русский язык #27
Цитата Сообщение от Domonion Посмотреть сообщение
Вы тоже не заметили пост
Заметил я всё. Мне нужен определённый код (мой), а не тот, которые вы пробовали и неизвестно как (только с ваших слов).

Добавлено через 4 минуты
Если не работает конкретный код, не нужно писать так , как будто вообще, в системе, не работает русский язык при запуске .exe.
Цитата Сообщение от Domonion Посмотреть сообщение
Однако тема не закрыта! Вы же не забыли
Это уже другая тема.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 10:48     Не реагирует на русский язык #28
Цитата Сообщение от Domonion Посмотреть сообщение
прога почему-то не видит первой строчки файла(file.txt)
Дубль записи из из файла file.txt удален.
Результат выполнения:
Название: Безымянный.png
Просмотров: 14

Размер: 1.5 Кб
Domonion
1 / 1 / 0
Регистрация: 03.06.2013
Сообщений: 89
05.06.2013, 10:59  [ТС]     Не реагирует на русский язык #29
Да, из вашего file.txt всё работает хорошо. Но всё-таки объяснить
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;
  }
значение вот этого можете? просто если убрать эту часть, работает точно так же
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2013, 11:03     Не реагирует на русский язык
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11800 / 6779 / 765
Регистрация: 27.09.2012
Сообщений: 16,829
Записей в блоге: 2
Завершенные тесты: 1
05.06.2013, 11:03     Не реагирует на русский язык #30
Конструктор копий, конструктор по умолчанию и оператор присваивания. В данном случае, если их убрать, то компилятор автоматически сгенерирует такие же по функциональности
Yandex
Объявления
05.06.2013, 11:03     Не реагирует на русский язык
Ответ Создать тему
Опции темы

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