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

Программа не считывает весь файл - C++

Восстановить пароль Регистрация
 
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
28.05.2013, 20:16     Программа не считывает весь файл #1
Программа не считывает весь текстовый файл, а только последнее слово. С чем это связано ?
Например: Есть файл list.txt в нём написано: "dfjgikhdf hgfjsdighd ifdhguih", но программа считывает и выводит только "ifdhguih". Помогите пожалуйста и покажите ошибку. Буду очень признателен.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
#include <locale>
using namespace std;
 
int main(){
    setlocale (LC_ALL, "");
   ifstream in ("list.txt");
   bool check = true;
   char text[256];
 
   while(!in.eof()) in >> text;
   
   for(int i = 0; i < strlen(text);i++){
 
      if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
          
   }
   cout << text;
   cin.get ();
   return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 20:16     Программа не считывает весь файл
Посмотрите здесь:

Программа,которая считывает с клавиатуры текст C++
C++ программа, которая считывает текст из файла
Программа не считывает строку C++
Не работает код (программа считывает из файла строку, убирает лишние пробелы и записывает в другой файл строку, словами наоборот) C++
C++ Одна программа записывает данные в файл, а другая их считывает и выводит на экран
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kostya-vrn
10 / 10 / 4
Регистрация: 16.03.2013
Сообщений: 30
28.05.2013, 20:31     Программа не считывает весь файл #2
Попробуй так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while(!in.eof()) 
{
  in >> text;
   
   for(int i = 0; i < strlen(text);i++){
 
      if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
          
   }
}
   cout << text;
   cin.get ();
   return 0;
}
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 20:57     Программа не считывает весь файл #3
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
#include <iostream>
#include <fstream>
#include <string>
#include <locale>
using namespace std;
 
int main(){
    setlocale (LC_ALL, "");
   ifstream in ("list.txt");
   bool check = true;
   char text[256];
 
   while(!in.eof())
   { 
       in >> text;
   
       for(int i = 0; i < strlen(text);i++){
 
          if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
          
       }
       cout << text << ' ';
   }
   cin.get ();
   return 0;
}
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.05.2013, 21:05     Программа не считывает весь файл #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <fstream>
 
int main()
{
    char currentChar;
    std::ifstream inputFile("list.txt");
    while (inputFile.get(currentChar))
        std::cout << currentChar;
    inputFile.close();
 
    return 0;
}
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
28.05.2013, 21:27  [ТС]     Программа не считывает весь файл #5
Цитата Сообщение от alsav22 Посмотреть сообщение
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
#include <iostream>
#include <fstream>
#include <string>
#include <locale>
using namespace std;
 
int main(){
    setlocale (LC_ALL, "");
   ifstream in ("list.txt");
   bool check = true;
   char text[256];
 
   while(!in.eof())
   { 
       in >> text;
   
       for(int i = 0; i < strlen(text);i++){
 
          if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
          
       }
       cout << text << ' ';
   }
   cin.get ();
   return 0;
}
Спасибо, но в чём у меня была проблема ?
Ev[G]eN
Эксперт С++
 Аватар для Ev[G]eN
5093 / 1531 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
28.05.2013, 21:30     Программа не считывает весь файл #6
Цитата Сообщение от Chymardos Посмотреть сообщение
C++
1
2
3
4
5
while(!in.eof()) in >> text;
for(int i = 0; i < strlen(text);i++){
if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
}
cout << text;
в том, что вывод text вне цикла while, посему выводится последнее записанное в переменную text содержимое

Добавлено через 1 минуту
C++
1
2
3
4
5
while(!in.eof()){ in >> text;
for(int i = 0; i < strlen(text);i++){
if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
}
cout << text;}
вот так
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
28.05.2013, 21:42     Программа не считывает весь файл #7
Цитата Сообщение от Chymardos Посмотреть сообщение
но в чём у меня была проблема ?
Две скобки для while() забыты.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2013, 23:19     Программа не считывает весь файл
Еще ссылки по теме:

Программа не считывает пробелы C++
C++ Программа не считывает с файла текст полностью
Программа не считывает введенные данные C++

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

Или воспользуйтесь поиском по форуму:
Chymardos
0 / 0 / 0
Регистрация: 29.01.2013
Сообщений: 78
28.05.2013, 23:19  [ТС]     Программа не считывает весь файл #8
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
в том, что вывод text вне цикла while, посему выводится последнее записанное в переменную text содержимое

Добавлено через 1 минуту
C++
1
2
3
4
5
while(!in.eof()){ in >> text;
for(int i = 0; i < strlen(text);i++){
if(text[i-1]==' ' || i-1<0) text[i]= toupper(text[i]);
}
cout << text;}
вот так
Спасибо, понял
Yandex
Объявления
28.05.2013, 23:19     Программа не считывает весь файл
Ответ Создать тему
Опции темы

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