Есть задание, цитирую точно как в методичке: «Написать программу которая считывает из текстового файла три предложения и выводит их в обратном порядке». Звучит так, будто в файле всегда должно быть только три предложения. Как оказалось, нужно сделать так, чтобы программа считала и вывела ПЕРВЫХ три предложения в обратном порядке. Вот так выглядит мое решение:
ifstream fin(«sen.txt»); string str, sdel(«. «); stack stk; if (!fin) < cout for (char c; fin.get(c); ) < str += c; if (sdel.find(c) != string::npos) < stk.push(str); str.clear(); >> for (; !stk.empty(); stk.pop()) < if (stk.size() > return 0;
Такое решение у меня не приняли, то-есть, у меня программа если находит какой-то из знаков «. » то отделяет все что было до этого предложением, включая знак и запихивает в стек.
Как мне сказал преподаватель: «Точка не обязательно есть концом предложения». Дальше он начал рассказывать такое: Начало — большая буква, конец — . ! ? Предложение может находится — только в одной строке, но строка может содержать много предложений. Это называется формализацией. Честно говоря, я не очень то понял, что это значит, и как мне определять, конец ли предложения.
Запись ОБЪЕКТА КЛАССА в файл с++. Чтение объекта из файла c++ Для начинающих. Урок #117
Источник: ru.stackoverflow.com
1. Написать программу, которая считывает из текстового файла
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
using namespace std ;
ifstream fin ( «text1.txt» ) ;
if ( ! fin ) cout << «Net takogo faila» ;
fin. seekg ( 0 , ios :: end ) ;
long len = fin. tellg ( ) ;
fin. seekg ( 0 , ios :: beg ) ;
char str [ len ] ;
fin. getline ( str, len ) ;
long i = 0 , n = 0 ,b = 0 ;
while ( str [ i ] )
if ( str [ i ] == ‘.’ || str [ i ] == ‘?’ || str [ i ] == ‘!’ ) {
for ( int j ( i ) ; j >= b — 1 ; j — ) {
cout << str [ j ] ;
} n ++ ; b = i + 1 ;
if ( n == 3 ) break ;
//1. Написать программу, которая считывает из текстового файла три предложения
и выводит их в обратном порядке
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement
C# | 3 min ago | 1.46 KB
C# | 6 min ago | 2.08 KB
C# | 7 min ago | 1.71 KB
C# | 9 min ago | 1.71 KB
C# | 14 min ago | 1.15 KB
GetText | 20 min ago | 0.24 KB
Ruby | 21 min ago | 29.59 KB
Работа с файлами в Python. Чтение и запись данных
C++ | 22 min ago | 1.23 KB
Advertisement
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand

Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
Источник: pastebin.com
Вариант 1
Написать программу, которая считывает из текстового файла три предложения и выводит их в обратном порядке.
Код программы:
//————————————————————————— #include #include #include #include #include #include #pragma hdrstop #pragma argsused //————————————————————————— char *rus(const char *text); int main(int argc, char* argv[]) < ifstream fin(«text.txt»); if(!fin) < cout< 1; > fin.seekg(0,ios::end); long len=fin.tellg(); char *buf=new char[len+1]; char *buffer=new char[len+1]; fin.seekg(0,ios::beg); fin.read(buf,len); buf[len]=’