質問: 例えば、下記のプログラムは標準入力(std::cin)からテキストファイルを読み込み行番号を付けて標準出力(std::cout)に出力するものですが、この様なプログラムをデバッグする場合どのようにするのがいいのでしょうか? ``` // #include #include #include // using namespace std; // int main(void) { int lno= 0; string iStr; // while(getline(cin,iStr)){ cout << setw(4) << ++lno << ' ' << iStr << endl; } // return 0; } ``` 「環境」 FreeBSD 11.1-RELEASE-p1 clang version 4.0.0 CodeLite(IDE) 今までファイルの入出力などは使っていましたが標準入出力を使った(デバッグ)経験は皆無です。で、 ・エラー出力(std::cerr)で表示して確認する。 ・fprintf()などを入れてファイルで結果を確認する。 などは考えたのですが、もう少しマシな(やりやすい)方法があればご教授いただきたいのですが。
回答: C++で応用できるかわかりませんが、Cの場合でファイル入出力までできているならば、ファイルポインタをstdin/stdoutに変更すれば読み込み元/書き込み先をファイルから標準入出力に変更できます。 後は少しだけ条件分岐を追加するとかマクロでコンパイル時切り替えすれば、デバッグ時だけファイル入出力にするということができます。