Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (перевод pascal на С++) - C++
Формулировка задачи:
Дан текстовый файл. Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (5 пробелов). Пустые строки между абзацами не учитывать.
program ads; var F2,f1: text; s,name1,name2: string; Na,i,k:integer; Begin write('vvedite filename ');readln(name1); assign(F1,name1); reset(f1); write('vvedite filename2 ');readln(name2); assign(F2,name2); rewrite(F2); while not eof(F1) do begin i:=k; readln(F1,s); if copy(s,1,5)=' ' then dec(i); end; write('Vvedite k '); readln(k); while not eof(f1) do begin Readln(F1,s); if k=i then begin delete(s,6,Length(s)-5); repeat if s<>'' then delete(s,1,Length(s)); until copy(s,1,5)=' '; end; end; Close(F1); Close(F2); erase(f1); rename(f2,name1); END.
Решение задачи: «Найти количество абзацев в тексте, если каждый абзац начинается с красной строки (перевод pascal на С++)»
textual
Листинг программы
#include <fstream> #include <iostream> int main(int argc, char* argv[]) { using namespace std; if (argc != 2) { cerr << argv[0] << ": неверное количество аргументов командной строки" << endl; return 127; } ifstream file(argv[1]); if (!file) { cerr << argv[0] << ": " << argv[1] << ": неудалось открыть файл" << endl; return 126; } size_t paragrafs = 0; while (file) { string s; getline(file, s); if (s.substr(0, 5) == " ") { paragrafs++; } } cout << argv[0] << ": " << argv[1] << ": количество абзацев: " << paragrafs << endl; }
Объяснение кода листинга программы
- Объявление и инициализация переменных:
using namespace std;
int main(int argc, char* argv[])
if (argc != 2)
cerr << argv[0] <<
: неверное количество аргументов командной строки<< endl;
return 127;
ifstream file(argv[1]);
if (!file)
cerr << argv[0] <<
:<< argv[1] <<
: неудалось открыть файл<< endl;
return 126;
size_t paragrafs = 0;
- Основной цикл программы:
while (file)
string s;
getline(file, s);
if (s.substr(0, 5) ==
)
paragrafs++;
- Вывод результата:
cout << argv[0] <<
:<< argv[1] <<
: количество абзацев:<< paragrafs << endl;
- Значения переменных:
paragrafs
- количество абзацев в тексте.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д