Помощь - Поиск - Пользователи - Календарь
Полная версия: Файлы, язык Си
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
Neon6868
Задание: Написать программу, которая считывает текст из файла и выводит его предложения в обратном порядке.

Я начал писать программу, но даже не представляю как можно сделать так, чтобы предложения выводились в обратном порядке. Подскажите плз хотя бы идею как это сделать??

Программа:
Код

#include <fstream.h>
#include <string.h>
#include <stdio.h>
void main()
  {
  const int len=255;
  char word[len], line[len];
  ifstream fin("D:\\text.txt", ios::in | ios::nocreate);
  if (!fin) printf("\nOshibka");
  while (!feof(f))
  {

  }
  }
volvo
Уточни, при входном файле:
Цитата
abc.
def.
ret.

ты хочешь получить
Цитата
cba.
fed.
ter.

или
Цитата
ret.
def.
abc.
?
Neon6868
Вот так: ret.
def.
abc.
volvo
Способов на самом деле море... Можно читать строки из файла в vector<std::string>, а потом применить к нему reverse(v.begin(), v.end());
и вывести на печать...

Можно сделать вот так (используем рекурсию для "разворота" порядка следования предложений):

#include <fstream.h>

void read_file(ifstream &f, char *buffer) {

if(!f.eof()) {
char *p;
p = new char[256];

f.getline(p, 255, '.');
read_file(f, p);
}

cout << buffer << endl;
}

int main() {

ifstream f_in("text.txt", ios::in);
if(!f_in) {
cout << "error opening file";
}
else {
read_file(f_in, "");
f_in.close();
}

return 0;
}

(при условии, что все предложение разделяются точками)
Neon6868
большое спасибо smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.