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

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

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

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

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

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

C++ Как с консоли записать в файл русский текст
C++ Русский Язык!!!
Русский ввод и русский вывод C++
C++ пдскажите функцию которая выводит русский текст на экран и его заголовочный файл с++ но не system ( " echo текст " );
C++ русский язык
Как в файл вывести русский текст? C++
русский с++ C++
C++ Русский и строки
C++ getline, string, запись в файл, русский язык
Как записать русский текст в файл? C++
Настроить русский ввод в файл C++
C++ русский

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Эксперт С++
1346 / 879 / 51
Регистрация: 02.01.2009
Сообщений: 2,643
Записей в блоге: 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     Русский файл))
Ответ Создать тему
Опции темы

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