24

関数に fout または cout を渡す方法を見つけようとしています。これに対処する論理的に簡単な方法があることを認識しています。たとえば、データを出力する関数にifを入れたり、関数を両方の方法で記述したりするだけです。しかし、それは原始的で非効率的です。このコードが機能するとは思えません。何を「したい」かを簡単に確認できるようにするために、ここにコードを置いています。私は C++ を使用してアルゴリズム設計クラスを受講していることに注意してください。私は決してベテランの C++ プログラマーではありません。私のクラスは、表示されているヘッダーの使用に制限されています。

#include <iostream>
#include <iomanip>
#include <fstream>

using namespace std;
void helloWorld(char);
ofstream fout;

int main()
{
    fout.open("coutfout.dat");
    helloWorld(c);
    helloWorld(f);

    return 0;
}
void helloWorld(char x)
{
    xout << "Hello World";
    return;
}
4

2 に答える 2

44

これらは両方とも継承してostreamいるので、これを試してください:

void sayHello(ostream& stream)
{
    stream << "Hello World";
    return;
}

次に、メインでオブジェクト (cout など) を渡すと、正常に動作するはずです。

于 2012-04-27T18:58:08.273 に答える
13

はい。あなたの機能を

sayhello(std::ostream &os);

os次に、関数内で の代わりに使用できますxout

(ちなみに、using namespace stdstd 名前空間全体をダンプするので、お勧めしません。Ausing std::coutなどでも構いませんが。)

于 2012-04-27T18:58:06.740 に答える