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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
#1

Считывание русских символов из файла WinApi - C++

28.07.2011, 16:55. Просмотров 1250. Ответов 3
Метки нет (Все метки)

У меня есть массив name в котором хранится имя файла в формате D:\... Этот файл с текстом на русском языке. Первое слово - "привет". Потом есть такой код
C++
1
2
in.open(name);
in >> str;
Где in - std::ifstream, str - std::string. И после этого в str записывается мусор.

Как можно считать русские символы?

PS: Проект WinApi
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2011, 16:55     Считывание русских символов из файла WinApi
Посмотрите здесь:

Сравнение русских символов. C++
Ввод русских символов. C++
C++ Чтение русских символов из файла
Считывание символов с файла. C++
C++ Считывание символов с файла
Заменить считывание с клавиатуры на считывание из файла C++
Считывание через ifstream строки состоящей из чисел и символов из файла C++
Последовательное считывание нескольких символов из файла C++
ASCII игра из русских символов C++
C++ Считывание ЛЮБЫХ символов из файла
Подсчет символов UTF-8. Считывание пробельных символов C++
C++ Как настроить ввод русских символов и в дальнейшем вывод этих символов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soft.creator
 Аватар для soft.creator
103 / 103 / 4
Регистрация: 17.10.2010
Сообщений: 283
28.07.2011, 17:33     Считывание русских символов из файла WinApi #2
Для начала in >> str; перепишите как
C++
1
std::getline(in, str);
zuq
 Аватар для zuq
95 / 95 / 2
Регистрация: 10.04.2011
Сообщений: 256
28.07.2011, 17:41  [ТС]     Считывание русских символов из файла WinApi #3
Цитата Сообщение от soft.creator Посмотреть сообщение
Для начала in >> str; перепишите как
C++
1
std::getline(in, str);
Это считает строку, а не слово. И не важно, что я пишу - даже если просто считать в char через get(), вместо русских символов - мусор
xAtom
 Аватар для xAtom
910 / 735 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
28.07.2011, 18:35     Считывание русских символов из файла WinApi #4
вот держи на WinAPI считываем только кириллические символы.
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
#include <windows.h>
#define FILTER(ch)  (ch >= 'а' && ch <= 'я' || ch >= 'А' &&ch <= 'Я')
 
 
int main(void){
 
   HANDLE fp  = CreateFile("bin.txt", GENERIC_READ, FILE_SHARE_READ, NULL, 
                                         OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
   if(fp != INVALID_HANDLE_VALUE) {
 
      TCHAR*  buf = new TCHAR[ GetFileSize(fp, NULL) + 1U ];
      TCHAR*  ptr = buf;
      BOOL    res;
      DWORD   dr;
      TCHAR   ch;
      while(! SetEndOfFile(fp)) {
           res = ReadFile(fp, (LPVOID)&ch, sizeof(TCHAR), &dr, NULL);
           if(res && ! dr)
              break;
           if(FILTER(ch)) {
                 *ptr = ch;
                 ++ptr;
           }
      }
      CloseHandle(fp);
      *ptr = '\0';
 
      // показываем результат
      MessageBox(NULL, buf, "my text", MB_OK | MB_ICONINFORMATION);
 
      delete[] buf;
      buf = NULL;
   }
   return 0;
}
Yandex
Объявления
28.07.2011, 18:35     Считывание русских символов из файла WinApi
Ответ Создать тему
Опции темы

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