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

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

Войти
Регистрация
Восстановить пароль
 
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
#1

Русский файл)) - C++

11.05.2009, 18:54. Просмотров 817. Ответов 5
Метки нет (Все метки)

Доброго времени суток!
Подскажите пожалуйста, есть файл с русскими словами, я забираю русское слово с помощью cin.getline(), потом с помощью CharToOem преобразую в нормальную кодировку и вывожу на экран, но на экране фигня какая то вместо слова!
В чем проблема?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2009, 18:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Русский файл)) (C++):

Настроить русский ввод в файл - C++
Создал файл .txt через fstresm file("C:/file.txt"); в косоле сделал русский ввод вывод setlocale(LC_ALL, "Russian"); Но когда открываю файл...

Как в файл вывести русский текст? - C++
Когда русский текст вывожу в файл выводит какую то какафонию как это исправить

Как записать русский текст в файл? - C++
std::ofstream m_fOutput(PathFile); std::string Error = "Ошибка открытия файла"; if (!m_fOutput.is_open()) throw Error;...

getline, string, запись в файл, русский язык - C++
#include <iostream> using std::ios; using std::cin; using std::cout; using std::endl; #include <string> using std::string; ...

Как с консоли записать в файл русский текст - C++
Как с консоли записать в файл русский текст? Если так, то пишется только английский: #include <iostream> using namespace std; ...

Русский ввод и русский вывод - C++
Я знаю, что для того, чтобы был виден русский язык, я использую команду setlocale(LC_ALL,"Russian") Для того, чтобы в переменные...

5
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
11.05.2009, 19:12  [ТС] #2
Скорее другую фишку объясните, пожалуйста:
C++
1
2
3
4
ifstream input("rwords.txt");
char buf[26],buf1[26]="ААС";
input.getline(buf, 26);
cin.get();
Считываю из файла "ААС" (русские буквы) , переменной buf1 присваиваю "ААС" (аналогично), но в массивах в результате совершенно разные значения (см.скрин). В чем фишка?
0
Изображения
 
D1m0n
3 / 3 / 1
Регистрация: 10.05.2009
Сообщений: 9
11.05.2009, 19:22 #3
А файл точно открылся, а то на выложенной картинке у input присутствует False, NULL ?
Такое ощущение что выводится мусор из буфера, появившийся там при инициализации
0
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
11.05.2009, 19:56  [ТС] #4
Проверил, это не мусор.
False и NULL относятся к другому, файл открыт нормально.
Вот еще скрин, показывающий конкретные элементы массивов:
0
Миниатюры
Русский файл))  
D1m0n
3 / 3 / 1
Регистрация: 10.05.2009
Сообщений: 9
11.05.2009, 20:12 #5
Ну вот я на скоряк решил проверить:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
using namespace std;
 
int main () 
{
  ifstream infile;
  char buff[255];
  infile.open ("c:\\text.txt");
  if (infile.is_open())
  {
    infile.getline(buff, 255);
    infile.close();
    cout << buff;
  }
  else
  {   
    cout << "Error opening file";
  }
  system("pause");
  return 0;
 
}
Выводил Error пока не прописал путь до файла, для простоты кинул его в корень.
Вот такие пироги, другим ничем помочь не могу, сам начинающий.
0
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
11.05.2009, 20:22 #6
Так попробуй
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <fstream>
#include <string>
 
#include <Windows.h>
using namespace std;
 
 
int main(int argc, char* argv[])
{
    ifstream out("file.txt");
    string str;
    char buff[256];
    while(!out.eof()){
        getline(out,str);
        CharToOem(str.c_str(),buff);
        cout<<buff<<endl;
    }
        out.close();
    return 0;
}
1
11.05.2009, 20:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2009, 20:22
Привет! Вот еще темы с ответами:

пдскажите функцию которая выводит русский текст на экран и его заголовочный файл с++ но не system ( " echo текст " ); - C++
пдскажите функцию которая выводит русский текст на экран и его заголовочный файл с++ но не system ( &quot; echo текст &quot; );

русский с++ - C++
когда то слышал про такую задумку. не дадите наводку. под русским я подразумеваю полный перевод операторов и основных функций

русский - C++
вывожу текст через командную, но setlocale(LC_ALL, &quot;Russian&quot;) не помогает, хоть и на русском, но не то, что надо(а на консоли все ок) ...

Русский шрифт в BC++ - C++
Всем привет. У меня Borland C++ 3.1. Подскажите как вводить и выводить русский шрифт. Выводить на экран или в файл, вводить через консоль.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

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