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

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

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

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

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

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

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

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

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

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") Для того, чтобы в переменные...

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

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

Русский текст - C++
Помогите сделать на русском в консоли ввод и вывод! Пишу в консоли русскими а выдаёт иероглифы! #include <iostream> #include...

Русский компилятор C/С++ - C++
Подскажите компилятор C/C++ созданный в Росси. Ещё не разу невидел такого!:) Спасибо!

Русский компилятор - C++
Вопрос немного не в том разделе, но я не знаю, где его можно задать. Собсно вопрос: есть у кого либо русский компилятор (сижу на...

Русский символы в C++ - C++
ОС Ubuntu 12.04.Компилятор g++.Редактор vim. Код программы: #include <iostream> int main() { using namespace...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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 присваиваю "ААС" (аналогично), но в массивах в результате совершенно разные значения (см.скрин). В чем фишка?
Изображения
 
D1m0n
3 / 3 / 1
Регистрация: 10.05.2009
Сообщений: 9
11.05.2009, 19:22     Русский файл)) #3
А файл точно открылся, а то на выложенной картинке у input присутствует False, NULL ?
Такое ощущение что выводится мусор из буфера, появившийся там при инициализации
VorobeY1326
Ученик 11 класса)
4 / 4 / 0
Регистрация: 11.04.2009
Сообщений: 67
11.05.2009, 19:56  [ТС]     Русский файл)) #4
Проверил, это не мусор.
False и NULL относятся к другому, файл открыт нормально.
Вот еще скрин, показывающий конкретные элементы массивов:
Миниатюры
Русский файл))  
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 пока не прописал путь до файла, для простоты кинул его в корень.
Вот такие пироги, другим ничем помочь не могу, сам начинающий.
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,652
Записей в блоге: 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;
}
Yandex
Объявления
11.05.2009, 20:22     Русский файл))
Ответ Создать тему
Опции темы

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