У меня есть задание, которое требует от нас переформатировать текстовый файл, который нам предоставляется. Программа запускается с помощью cmd и задается два параметра команды; номер и имя текстового файла. Моя задача - написать функцию, которая будет отформатировать текстовый файл и отобразить его в определенном формате. Тем не менее, мне очень тяжело даже начинать.
Я ТОЛЬКО разрешено редактировать эту функцию и разрешено добавлять код между этими двумя скобками;
void typeset (int maxWidth, istream& documentIn)
{
}
Я полностью потерял, что делать. Последние полтора года я пробовал разные вещи, но никто из них не работает. Я не уверен, как работает синтаксис. Над "void typeset" больше кода, но мне не разрешено его изменять. Вот что в начале.cpp
#include "typeset.h"
#include <string>
#include <sstream>
#include <iostream>
using namespace std;
Я понятия не имею, как сделать бит, где я читаю текстовый файл. То, что я хотел бы сделать, это цикл, который непрерывно считывает символы до тех пор, пока не появится пробел, сохраняет эту строку символов как слово и продолжает делать это до тех пор, пока не достигнет конца файла. Все, что я нашел, использует что-то вроде std :: ifstream, который, похоже, не работает. Спасибо за ваше время.
Кажется, что проблема заключается в недостаточном понимании того, как работают потоки. Вы не должны создавать свой собственный ifstream, вы должны использовать istream&
передаваться функции
Напишите некоторый код, подобный этому, чтобы прочитать документ по одному символу за раз
void typeset (int maxWidth, istream& documentIn)
{
char ch;
while (documentIn.get(ch))
{
...
}
}
Мне кажется, что ваше замешательство характеризует того, кто просто смотрит в Интернете на что-то близкое к тому, что они хотят делать. В какой-то момент вы должны получить более фундаментальное понимание C++, чтобы вы могли понимать код и писать оригинальный код, а не просто копировать и изменять код. Вы только получите это, прочитав учебник, в котором объясняются принципы, стоящие за C++.
В этом случае принцип заключается в том, что все различные входные потоки выводятся из istream
поэтому вход любого потока может быть выполнен с помощью istream
.