Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Hi4ko
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
1

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

21.11.2011, 14:15. Просмотров 1529. Ответов 13
Метки нет (Все метки)

Беда за бедой, я уже 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 можно ведь работать, как с массивом?)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2011, 14:15
Ответы с готовыми решениями:

Как вывести std::wstring в поток?
Как вывести std::wstring в поток, если в строке есть кириллица?

Вывод в файловый поток
проверьте код // ooooo.cpp: определяет точку входа для консольного...

Файловый поток вне main()
Есть программа вывода на экран консоли через cout, решил заменить cout на out,...

Передать в функцию файловый поток
Помогите пожалуйста с файловыми потоками! Мне нужно передать в функцию...

Файловый поток узнать количество строк
Вопрос простой, нужно узнать количество строк в файле.

13
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 15:03 2
Hi4ko, Зачем FILE? w[o|i]fstream чем не устроило?
0
Hi4ko
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 15:09  [ТС] 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());
не работает.
Напишите, пожалуйста, код(
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 15:21 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;
   }
}
1
bearwoolfs
15 / 15 / 5
Регистрация: 10.01.2011
Сообщений: 275
21.11.2011, 15:34 5
А почему компилятор размещает , каждое слово на новой строке ???
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 15:39 6
bearwoolfs, Что-что компилятор делает?
0
bearwoolfs
15 / 15 / 5
Регистрация: 10.01.2011
Сообщений: 275
21.11.2011, 15:50 7
Цитата Сообщение от ForEveR Посмотреть сообщение
bearwoolfs, Что-что компилятор делает?
Ну компилятор считывает весь текст
C++
1
std::wifstream wifs("L.txt");
из файла вроде так ?
C++
1
 while (wifs >> value)
читаем до тех пор пока не вернется true

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

А почему ???
0
Hi4ko
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 15:50  [ТС] 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
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 15:57 9
Hi4ko, Кодировка неверная. У меня в utf-16 нормально считывает.

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

Добавлено через 1 минуту
bearwoolfs, Читает он до тех пор пока не будет конец файла. Но на каждой итерации цикла считывание идет до пробела - а вывод в цикле идет с переводом строки.
у моего файла тоже UTF-16 стоит (
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 16:15 11
Hi4ko, Значит данные записаны не в UTF-16.
Вообще тут работа с локалями, нужно фасет установить верный и т.д.
0
igorrr37
1875 / 1490 / 752
Регистрация: 21.12.2010
Сообщений: 2,484
Записей в блоге: 11
21.11.2011, 16:32 12
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/projects/ming....lzma/download
и документацию к ней
http://sourceforge.net/projects/ming....lzma/download
либа простейшая, и проблем с кодировками не будет
1
Hi4ko
74 / 74 / 12
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 16:33  [ТС] 13
Цитата Сообщение от igorrr37 Посмотреть сообщение
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/projects/ming....lzma/download
и документацию к ней
http://sourceforge.net/projects/ming....lzma/download
либа простейшая, и проблем с кодировками не будет
Почему написано MinGW - Minimalist GNU for Windows?
я на linux
Сейчас посмотрим
0
ForEveR
В астрале
Эксперт С++
7997 / 4755 / 652
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
21.11.2011, 16:42 14
Про iconv всецело согласен. Плюс можно посмотреть на Arabica. Там есть разные фасеты и работа с ними.
0
21.11.2011, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2011, 16:42

Объясните код, пожалуйста, файловый поток
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; using namespace...

С++, Разбитие файла, битый файл, Файловый поток
Суть, нужно разбить файл,(у многих будут болеть глаза от этого кода, так что...

Указатель на файловый поток в качестве параметра функции
Здравствуйте! Хочется/нужно написать что-то вроде функции которая читала бы...


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

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

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