0

次のシグネチャを持つ関数が与えられました。私はそれを変えることはできません、私はそれで働かなければなりません。

void parse(std::istream & in);

この関数をテストすることになっているので、基本的には定義済みの内容で呼び出して、値が適切に解析されているかどうかを確認します。したがって、この関数を呼び出す必要があります...次のようにparse("abcdedf....")...しかし、それを行う方法を見つけることができませんでした。

私はC++が初めてなので、これはばかげた質問かもしれません。私がストリームを理解している限り、istream はファイルなどのソースから読み取るときに取得するものです。したがって、通常の文字列をこのソースに変換する必要がありますが、方法がわかりません。

4

1 に答える 1

2

文字列ストリームを使用します:

std::istringstream iss("abcdef....");
parse(iss);

同様std::ifstreamに、ファイルの読み取りに使用され、std::istringstreamから派生するため、 aを aにアップキャストして渡すstd::istreamことができます。std::istringstream &std::istream &

于 2013-05-18T22:48:24.163 に答える