74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
1

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

21.11.2011, 14:15. Показов 2121. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.11.2011, 14:15
Ответы с готовыми решениями:

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

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

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

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

13
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.11.2011, 15:03 2
Hi4ko, Зачем FILE? w[o|i]fstream чем не устроило?
0
74 / 74 / 13
Регистрация: 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
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
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
15 / 15 / 5
Регистрация: 10.01.2011
Сообщений: 275
21.11.2011, 15:34 5
А почему компилятор размещает , каждое слово на новой строке ???
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.11.2011, 15:39 6
bearwoolfs, Что-что компилятор делает?
0
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
74 / 74 / 13
Регистрация: 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
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.11.2011, 15:57 9
Hi4ko, Кодировка неверная. У меня в utf-16 нормально считывает.

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

Добавлено через 1 минуту
bearwoolfs, Читает он до тех пор пока не будет конец файла. Но на каждой итерации цикла считывание идет до пробела - а вывод в цикле идет с переводом строки.
у моего файла тоже UTF-16 стоит (
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.11.2011, 16:15 11
Hi4ko, Значит данные записаны не в UTF-16.
Вообще тут работа с локалями, нужно фасет установить верный и т.д.
0
2658 / 1924 / 960
Регистрация: 21.12.2010
Сообщений: 3,568
Записей в блоге: 9
21.11.2011, 16:32 12
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/project... a/download
и документацию к ней
http://sourceforge.net/project... a/download
либа простейшая, и проблем с кодировками не будет
1
74 / 74 / 13
Регистрация: 21.10.2010
Сообщений: 376
21.11.2011, 16:33  [ТС] 13
Цитата Сообщение от igorrr37 Посмотреть сообщение
Hi4ko, для работы с кодировками скачай либу libiconv
http://sourceforge.net/project... a/download
и документацию к ней
http://sourceforge.net/project... a/download
либа простейшая, и проблем с кодировками не будет
Почему написано MinGW - Minimalist GNU for Windows?
я на linux
Сейчас посмотрим
0
В астрале
Эксперт С++
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
21.11.2011, 16:42 14
Про iconv всецело согласен. Плюс можно посмотреть на Arabica. Там есть разные фасеты и работа с ними.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2011, 16:42
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru