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

Wstring и файловый поток - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 14:15     Wstring и файловый поток #1
Беда за бедой, я уже 2 тему создаю.
Короче из-за того, что теперь я использую вместо string Wstring не знаю, как грамотно файловый поток устроить в программе.

Одна из попыток
C++
1
2
3
4
5
6
7
8
9
10
{
    FILE * pFile;
    pFile = freopen ("input.txt" , "r", stdin);
       wstring s; 
    do
    {
             wcin>>s;
        wcout<<s<<endl;
    }while( !feof(pFile));
}
Выводит бесконечное кол-во пустых строк.
input.txt : Александр Сергеевич Пушкин
Кодировка: Unicode UTF - 16

и 2 вопрос: с wstring можно ведь работать, как с массивом?)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 15:03     Wstring и файловый поток #2
Hi4ko, Зачем FILE? w[o|i]fstream чем не устроило?
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 15:09  [ТС]     Wstring и файловый поток #3
Цитата Сообщение от ForEveR Посмотреть сообщение
Hi4ko, Зачем FILE? w[o|i]fstream чем не устроило?
C++
1
2
3
4
5
6
7
8
   
    ifstream in("input.txt");
wstring temp; 
    do
    {
             win>>temp;
        wcout<<temp<<endl;
    }while(!in.eof());
не работает.
Напишите, пожалуйста, код(
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 15:21     Wstring и файловый поток #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
   std::wifstream wifs("file.txt");
   std::wstring value;
   while (wifs >> value)
   {
      std::wcout << value << std::endl;
   }
}
bearwoolfs
 Аватар для bearwoolfs
15 / 15 / 2
Регистрация: 10.01.2011
Сообщений: 275
21.11.2011, 15:34     Wstring и файловый поток #5
А почему компилятор размещает , каждое слово на новой строке ???
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 15:39     Wstring и файловый поток #6
bearwoolfs, Что-что компилятор делает?
bearwoolfs
 Аватар для bearwoolfs
15 / 15 / 2
Регистрация: 10.01.2011
Сообщений: 275
21.11.2011, 15:50     Wstring и файловый поток #7
Цитата Сообщение от ForEveR Посмотреть сообщение
bearwoolfs, Что-что компилятор делает?
Ну компилятор считывает весь текст
C++
1
std::wifstream wifs("L.txt");
из файла вроде так ?
C++
1
 while (wifs >> value)
читаем до тех пор пока не вернется true

текст в L.txt он считал , и расположил все в столбец было : true false true выдал
true
false
true

А почему ???
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 15:50  [ТС]     Wstring и файловый поток #8
Цитата Сообщение от ForEveR Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
   std::wifstream wifs("file.txt");
   std::wstring value;
   while (wifs >> value)
   {
      std::wcout << value << std::endl;
   }
}
output:
terminate called after throwing an instance of 'std::ios_base::failure'
what(): basic_filebuf::underflow invalid byte sequence in file
Aborted
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 15:57     Wstring и файловый поток #9
Hi4ko, Кодировка неверная. У меня в utf-16 нормально считывает.

Добавлено через 1 минуту
bearwoolfs, Читает он до тех пор пока не будет конец файла. Но на каждой итерации цикла считывание идет до пробела - а вывод в цикле идет с переводом строки.
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 16:09  [ТС]     Wstring и файловый поток #10
Цитата Сообщение от ForEveR Посмотреть сообщение
Hi4ko, Кодировка неверная. У меня в utf-16 нормально считывает.

Добавлено через 1 минуту
bearwoolfs, Читает он до тех пор пока не будет конец файла. Но на каждой итерации цикла считывание идет до пробела - а вывод в цикле идет с переводом строки.
у моего файла тоже UTF-16 стоит (
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 16:15     Wstring и файловый поток #11
Hi4ko, Значит данные записаны не в UTF-16.
Вообще тут работа с локалями, нужно фасет установить верный и т.д.
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
21.11.2011, 16:32     Wstring и файловый поток #12
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/projects/ming....lzma/download
и документацию к ней
http://sourceforge.net/projects/ming....lzma/download
либа простейшая, и проблем с кодировками не будет
Hi4ko
74 / 74 / 4
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 16:33  [ТС]     Wstring и файловый поток #13
Цитата Сообщение от igorrr37 Посмотреть сообщение
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/projects/ming....lzma/download
и документацию к ней
http://sourceforge.net/projects/ming....lzma/download
либа простейшая, и проблем с кодировками не будет
Почему написано MinGW - Minimalist GNU for Windows?
я на linux
Сейчас посмотрим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2011, 16:42     Wstring и файловый поток
Еще ссылки по теме:

C++ Объясните код, пожалуйста, файловый поток
C++ Файловый поток: записать в другой файл различные числа исходного файла
C++ Объясните, что означает wstring input = L""; и wstring output = L""; ?
Файловый поток вне main() C++
С++, Разбитие файла, битый файл, Файловый поток C++

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт С++
 Аватар для ForEveR
7934 / 4716 / 318
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2011, 16:42     Wstring и файловый поток #14
Про iconv всецело согласен. Плюс можно посмотреть на Arabica. Там есть разные фасеты и работа с ними.
Yandex
Объявления
21.11.2011, 16:42     Wstring и файловый поток
Ответ Создать тему
Опции темы

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