Как читать файл .txt символ за символом без <iostream>?

0

У меня есть задание, которое требует от нас переформатировать текстовый файл, который нам предоставляется. Программа запускается с помощью cmd и задается два параметра команды; номер и имя текстового файла. Моя задача - написать функцию, которая будет отформатировать текстовый файл и отобразить его в определенном формате. Тем не менее, мне очень тяжело даже начинать.

Я ТОЛЬКО разрешено редактировать эту функцию и разрешено добавлять код между этими двумя скобками;

void typeset (int maxWidth, istream& documentIn)
{

}

Я полностью потерял, что делать. Последние полтора года я пробовал разные вещи, но никто из них не работает. Я не уверен, как работает синтаксис. Над "void typeset" больше кода, но мне не разрешено его изменять. Вот что в начале.cpp

#include "typeset.h"
#include <string>
#include <sstream>
#include <iostream>
using namespace std;

Я понятия не имею, как сделать бит, где я читаю текстовый файл. То, что я хотел бы сделать, это цикл, который непрерывно считывает символы до тех пор, пока не появится пробел, сохраняет эту строку символов как слово и продолжает делать это до тех пор, пока не достигнет конца файла. Все, что я нашел, использует что-то вроде std :: ifstream, который, похоже, не работает. Спасибо за ваше время.

Теги:

1 ответ

2
Лучший ответ

Кажется, что проблема заключается в недостаточном понимании того, как работают потоки. Вы не должны создавать свой собственный ifstream, вы должны использовать istream& передаваться функции

Напишите некоторый код, подобный этому, чтобы прочитать документ по одному символу за раз

void typeset (int maxWidth, istream& documentIn)
{
    char ch;
    while (documentIn.get(ch))
    {
        ...
    }
}

Мне кажется, что ваше замешательство характеризует того, кто просто смотрит в Интернете на что-то близкое к тому, что они хотят делать. В какой-то момент вы должны получить более фундаментальное понимание C++, чтобы вы могли понимать код и писать оригинальный код, а не просто копировать и изменять код. Вы только получите это, прочитав учебник, в котором объясняются принципы, стоящие за C++.

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

  • 0
    Это работает как шарм. Оказывается, что причина, по которой я не смог ее запустить, была ошибка оператора; У меня был текстовый файл в неправильной папке, и я был так сосредоточен на своем коде, что даже не думал о нем. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню