IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> Файлы, язык Си, Помогите дописать программу
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Задание: Написать программу, которая считывает текст из файла и выводит его предложения в обратном порядке.

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

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

#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))
  {

  }
  }
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
сообщение
Сообщение #2


Гость






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

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

или
Цитата
ret.
def.
abc.
?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


Вот так: ret.
def.
abc.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Способов на самом деле море... Можно читать строки из файла в 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;
}

(при условии, что все предложение разделяются точками)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 146
Пол: Мужской

Репутация: -  0  +


большое спасибо smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.03.2024 16:26
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name