Консультация № 128940
25.03.2008, 07:59
0.00 руб.
0 2 2
Помогите пожалуйста написать программу.
Вот условие:
Написать программу которая считывает из текстового файла три предложения и выводит их в обратном порядке

Обсуждение

давно
Старший Модератор
17042
808
25.03.2008, 10:16
общий
это ответ
Здравствуйте, Azsergey!
Открываем файл на считывание (ifstream, ios::in) и, если он успешно открыт (is_open()) и есть что считывать (good()), то считываем построчно из потока в переменные типа string (getline()). Подробнее - см. в приложении.

Приложение:
#include <iostream>#include <fstream>using namespace std;//-------------------------------------------------------------- int main(){ string sSentence1; string sSentence2; string sSentence3; ifstream FileStream("Text.txt", ios::in); if(FileStream.is_open()) { if(FileStream.good()) { getline(FileStream, sSentence1); getline(FileStream, sSentence2); getline(FileStream, sSentence3); } FileStream.close(); } cout << sSentence3 << endl << sSentence2 << endl << sSentence1 << endl; return 0;}
Об авторе:
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014
Неизвестный
25.03.2008, 14:38
общий
это ответ
Здравствуйте, Azsergey!
Решение смотрите в приложении
<i>ps используется stl vector</i>

Приложение:
#include <iostream>#include <fstream>#include <vector>#include <string>using namespace std;int main(){ vector<string> v; string s; fstream f; f.open("file.txt", ios_base::in); char str[80]; for(int i=0; i<3; ++i) if(!f.eof()) { f.getline(str, 80, ‘\r‘); s=str; v.push_back(s); } for(vector<string>::reverse_iterator i=v.rbegin(); i!=v.rend(); ++i) // реверсивный итератор cout<<(*i).c_str()<<endl; system("pause"); return 0;}
Форма ответа