2016-07-20 12 views
-3

void関数によって生成された文字列を保持する文字列配列を作成しようとしています。もし私がこれをやることができるかどうかについて、私は非常に混乱しています。以下のコードは、「適切なコンストラクタがありません」というエラーを表示しています。関数によって生成された文字列を配列に追加する

getWords("theFile.dat");  // Function to extract list of strings from file  
string wordsList[] = {getWords("theFile.dat")}; // Add strings from function to array 
+0

'void'関数の場合、文字列はどのように生成されますか? – Barry

+0

これはcoutを使用します。これは私が作業している他の人が与えた関数なので、void関数から変更することはできません –

+2

それを使って文字列のリストを初期化することはできません。 –

答えて

3

場合は(コメントの状態など)のコードは、文字列を印刷するcoutを使用して、あなたはそれらをキャプチャし、あなたの配列にそれらを配置する方法がありません。さて、あなたはかもしれません stdoutファイルディスクリプタを保持し、それに書き込まれているものを読み込むいくつかの大きな/醜いハックを実行することで可能になりますが、それは言葉を超えて醜いでしょう。プラットフォーム固有の実装)。ただそこに行かないでください。

自分でを書きます。は、ファイルを読み取り、必要なものを返すか、与えられたクラップ機能を修正する機能があります。

修正または再実装/再組み立てを行う前に、壊れたクラップコードを回避するために追加する必要があるクラッド(クラップ/バグが多く発生する危険性がある)には限界があります。

+0

は完全に同意します。私は何とかそれを働かせるために楽しい挑戦としてそれを取るだろうが、深刻なコードでは、私は単にその機能をゴミに投げるだろう。 – user463035818

関連する問題