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

Вывести каждое слово из файла на экран - C++

Восстановить пароль Регистрация
 
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
04.01.2014, 20:02     Вывести каждое слово из файла на экран #1
Имеется файл со следующим содержимым:
1 Иван Петров
2 Оля Семенова
3 Илья Петушко
4 Наталья Близер
........

Мне нужно считать эти данные и вывести на экран, но так, чтобы не целой строкой, а по отдельности каждое слово и номер. (считали номер, далее считываем имя, потом фамилию, и так же поочередно выводим).
Помогите, пожалуйста!!! желательно использовать fstream (fstream.h), iostream(iostream.h).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.01.2014, 20:02     Вывести каждое слово из файла на экран
Посмотрите здесь:

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово C++
Нужно в предложении каждое слово вывести наоборот C++
Очереди. За один просмотр файла вывести на экран каждое третье слово, а затем каждое четвертое C++
Вывести на экран предложения из файла, которые содержат введенное с клавиатуры слово C++
Считать текст из файла и вывести на экран только предложения, которые содержат введенное с клавиатуры слово C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.01.2014, 20:09     Вывести каждое слово из файла на экран #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
int number;
string name;
string family;
    
ifstream fin("file.txt")
if (!fin) cout << "Error!" << endl;
else
{
    while (fin >> number >> name >> family)
        cout << number << ' ' << name << ' ' << family << endl;
    fin.close();
}
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
04.01.2014, 20:11  [ТС]     Вывести каждое слово из файла на экран #3
А если между словами табуляция? То как тогда считать? Или он автоматически игнорируется?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.01.2014, 20:12     Вывести каждое слово из файла на экран #4
Цитата Сообщение от casper007 Посмотреть сообщение
Или он автоматически игнорируется?
Да.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
04.01.2014, 20:52  [ТС]     Вывести каждое слово из файла на экран #5
Цитата Сообщение от alsav22 Посмотреть сообщение
while (fin >> number >> name >> family).
После fin на операторе вывода показывается ошибка: "Отсутствует оператор ">>", соответствующий этим операндам."
P.S. юзаю Юникод
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.01.2014, 20:59     Вывести каждое слово из файла на экран #6
Цитата Сообщение от casper007 Посмотреть сообщение
P.S. юзаю Юникод
Хоть что. Инклуды нужные сделать, для string, в частности.

Добавлено через 2 минуты
Код нужно показывать, я же не вижу, что у вас там.
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
04.01.2014, 21:11  [ТС]     Вывести каждое слово из файла на экран #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Хоть что. Инклуды нужные сделать, для string, в частности.

Добавлено через 2 минуты
Код нужно показывать, я же не вижу, что у вас там.


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
36
37
38
39
40
void  OutFile(HWND Hwnd)
   {
        WCHAR numb[6];
       WCHAR name[52];
        WCHAR familiya[70];
       HDC DC;
       PAINTSTRUCT ps;
        int i=1;
  DC=BeginPaint(Hwnd,&ps);
  SelectObject(DC,HF);
 
  TextOutW(DC, 10,20,L"Список класса", 13);
  MoveToEx(DC, 10,38, NULL); LineTo(DC,750,38);
  TextOutW(DC, 15 , 42, L"Имя"    , 3);
  TextOutW(DC, 205, 42, L"Фамилия", 7);
  TextOutW(DC, 505, 42, L"Адрес"  , 5);
  MoveToEx(DC,  10, 60  , NULL); LineTo(DC,750,60);
ifstream file(File_name);if(!file) MessageBox(HWND_DESKTOP,L"Can not open file", L"File not found",MB_OK);
  else {
      while(!file.eof())
     {
         file>>numb;file>>name;file>>familiya;
         i+=1;
     TextOutW(DC, 15, 46+(i+1)*20-2, numb   , wcslen(numb)   );
     TextOutW(DC,205, 46+(i+1)*20-2, name, wcslen(name));
       TextOutW(DC,395, 46+(i+1)*20-2, familiya, wcslen(familiya));
       MoveToEx(DC, 10, 40+(i+2)*20, NULL); LineTo(DC,750,40+(i+2)*20); 
      
 
  MoveToEx(DC,  10, 40, NULL); LineTo(DC,  10, 40+(i+1)*20);
  MoveToEx(DC, 200, 40, NULL); LineTo(DC, 200, 40+(i+1)*20);
  MoveToEx(DC, 500, 40, NULL); LineTo(DC, 500, 40+(i+1)*20);
  MoveToEx(DC, 750, 40, NULL); LineTo(DC, 750, 40+(i+1)*20);
   MoveToEx(DC, 750, 40, NULL); LineTo(DC, 750, 40+(i+1)*20);
   MoveToEx(DC,100,40,NULL);
      }
  }
  file.close();
   EndPaint(Hwnd,&ps);
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.01.2014, 21:25     Вывести каждое слово из файла на экран #8
Интересно, всё переписано, а вопросы задаём, как-будто код такой, как во 2 посте.
http://www.cplusplus.com/reference/fstream/wifstream/
casper007
61 / 61 / 21
Регистрация: 12.12.2013
Сообщений: 375
04.01.2014, 21:38  [ТС]     Вывести каждое слово из файла на экран #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Интересно, всё переписано, а вопросы задаём, как-будто код такой, как во 2 посте.
http://www.cplusplus.com/reference/fstream/wifstream/
Во я бестолочь!!! Заработало, но не совсем так. Выводятся кракозябры.
хотя в основном коде прописывал: _wsetlocale(LC_ALL, L"Russian");
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2014, 02:45     Вывести каждое слово из файла на экран
Еще ссылки по теме:

C++ Программа, должна предвидеть ввод последованности символов и вывести на экран каждое слово в отдельном ряду
В тексте удалить каждое четное слово, продублировать каждое нечетное слово C++
Вывести на печать каждое слово строки с новой строчки C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
05.01.2014, 02:45     Вывести каждое слово из файла на экран #10
Может поможет: http://www.rsdn.ru/forum/cpp/1853603.hot
Yandex
Объявления
05.01.2014, 02:45     Вывести каждое слово из файла на экран
Ответ Создать тему
Опции темы

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