- ベストアンサー
C++実行結果に改行数のみ表示、文字数がでません
- C++のプログラムを実行する際に、改行数のみ表示されて文字数が表示されない問題が発生しています。
- 実行結果に改行数のみ表示され、文字数が表示されない問題が発生しています。
- C++のプログラムを実行すると、改行数は表示されるものの、文字数が表示されない問題が発生しています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません。すっかり回答が遅くなってしまいました。 >> hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、 > これは、このままDOSに打ち込むのでしょうか? 実際には「実行ファイル名 > 出力ファイル名」になります。 出力ファイル名に、既に存在するファイル名を指定すると、その内容が上書きされてしまうので注意が必要です。 > 実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。 これって、入力ファイル名にソースファイルを指定していませんか? 入力をキーボードからにしたければ、「< 入力ファイル名」は書かないようにします。 > つまり、何文字、何行打ち込もうとも、 ちょっとこれが不明だったんですが、入力ファイルを指定しているにも関わらず、入力できたということでしょうか? 普通、入力ファイルを指定すると、キーボードから入力する代わりにファイルの内容が読み出され、キー入力待ちにはならないはずなんですが・・・ 不明な点は、また補足ください。
その他の回答 (2)
- leaz024
- ベストアンサー率75% (398/526)
過去にも同様の症状での質問がありました。(下記URL) 入力の終了には Ctrl+Z を使いますよね。 どうもこれが悪さをして、次の1行が表示されなくなる(消される?)ようです。 恐らくMS-DOSのコンソール入出力制御が、そういう仕様なのでしょう。 これはあくまでコンソール上での話なので、出力をファイルへリダイレクトすれば正しく結果が書き込まれますし、入力をファイルからリダイレクトさせれば正しい結果が表示されます。 DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。 # リダイレクトというのは、出力先を画面からファイルに変えたり、入力元をキーボードからファイルに変えたりする方法です。 # hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、 # hoge.exe < in.txt とすれば、ファイルの内容が入力に使われます。 # もちろん、in.txt には、予め入力したい内容を書き込んでおく必要があります。
補足
>DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。 これは解りました。 > hoge.exe > out.txt とすれば、結果がファイルに書き込まれ、 これは、このままDOSに打ち込むのでしょうか? 解らなかったので以下を実行しました。 実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。 つまり、何文字、何行打ち込もうとも、 文字数=293 改行数=18となります。 例えば、 aaa aaa の場合、 文字数=8 改行数=2 という具合に、出力ファイルに出ないのでしょうか? よろしくお願いします。
- brogie
- ベストアンサー率33% (131/392)
>文字数がでません。 この意味がわかりません! 文字数+改行数になるようですが? 0とでるのですか? 自信なし!
お礼
出来ました。 いろいろありがとうございました。