0

与えられたテキスト ファイルを再フォーマットする必要がある課題があります。プログラムは cmd を使用して実行され、2 つのコマンド パラメータが与えられます。番号、およびテキスト ファイルの名前。私の仕事は、テキスト ファイルをフォーマットし、特定のフォーマットで表示する関数を作成することです。しかし、私は始めることさえ非常に苦労しています。

この関数を編集することだけが許可されており、これら 2 つの括弧の間にコードを追加することだけが許可されています。

void typeset (int maxWidth, istream& documentIn)
{

}

私は何をすべきか完全に迷っています。過去 1 時間半かけてさまざまなことを試しましたが、どれも機能しません。構文がどのように機能するかわかりません。'void タイプセット' の上にはさらにコードがありますが、それを変更することはできません。.cpp の先頭にあるものは次のとおりです。

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

テキストファイルを「読み取る」部分をどのように行うかわかりません。私がやりたいのは、スペースができるまで連続して文字を読み取り、その文字列を単語として保存し、ファイルの最後に到達するまでそれを続けるループを持つことです。私が見つけたものはすべて std::ifstream のようなものを使用していますが、これは機能していないようです。お時間をいただきありがとうございます。

4

1 に答える 1

2

問題は、ストリームがどのように機能するかを理解していないことにあるようです。独自の ifstream を作成することは想定されていませんistream&。関数に提供されたを使用することになっています。

ドキュメントを一度に 1 文字ずつ読み取るために、次のようなコードを記述します。

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

私には、あなたの混乱は、自分がやりたいことに近いものをインターネットで探している人の特徴のように思えます。ある時点で、単にコードをコピーして変更するのではなく、コードを理解し、元のコードを記述できるように、C++ のより基本的な理解を得る必要があります。それは、C++ の背後にある原則を説明している教科書を読むことによってのみ得られます。

この場合の原則は、すべての異なる入力ストリームがから派生するistreamため、あらゆる種類のストリームからの入力をistream.

于 2013-10-06T07:20:43.527 に答える