#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <process.h>
using namespace std;
int main(){
system("cls");
char mline[75];
int lc=0;
ofstream fout("out.txt",ios::out);
ifstream fin("data.txt",ios::in);
if(!fin){
cerr<<"Failed to open file !";
exit(1);
}
while(1){
fin.getline(mline,75,'.');
if(fin.eof()){break;}
lc++;
fout<<lc<<". "<<mline<<"\n";
}
fin.close();
fout.close();
cout<<"Output "<<lc<<" records"<<endl;
return 0;
}
Приведенный выше код должен читать из файла "data.txt" следующий текст
«Поведение потока типа ifstream по умолчанию (при открытии файлов) позволяет пользователям читать содержимое из файла. Если режим файла — ios::in, то чтение выполняется только в текстовом файле, а если режим файла также включает ios:: binary вместе с ios::in, то чтение выполняется в двоичном режиме. В двоичном режиме не происходит преобразования символов, тогда как в текстовом режиме происходят определенные преобразования».
и создайте файл out.txt, в котором тот же текст хранится с использованием номеров строк (строка может иметь 75 символов или заканчиваться на «.» — в зависимости от того, что наступит раньше).
Всякий раз, когда я запускаю программу, она просто зависает в консоли, которая не отвечает ни на какие клавиши.
Может кто-нибудь сказать мне, что здесь происходит?
while(1)){
недопустимый синтаксис. - person paxdiablo   schedule 04.09.2014mline
, что составляет 75 символов в ширину, куда идет завершающий нулевой символ? Кроме того: вы проверилиfin
при открытии, но почему бы не проверить иfout
? - person Emilio Garavaglia   schedule 04.09.2014