OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

入力文字数がでません。

  • 困ってます
  • 質問No.188666
  • 閲覧数79
  • ありがとう数3
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 58% (109/185)

C++です。以下を実行したのですが、実行結果に改行数は出るが文字数がでません。お願いします。

#include <iostream.h>

int main(void)
{
char c;
int ccount = 0;
int ncount = 0;

while (cin.get(c)) {
ccount++;
if (c == '\n')
ncount++;
}
cout << "文字数=" << ccount << '\n';
cout << "改行数=" << ncount << '\n';

return (0);
}
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル12

ベストアンサー率 75% (398/526)

すみません。すっかり回答が遅くなってしまいました。

>> hoge.exe > out.txt  とすれば、結果がファイルに書き込まれ、
> これは、このままDOSに打ち込むのでしょうか?

実際には「実行ファイル名 > 出力ファイル名」になります。
出力ファイル名に、既に存在するファイル名を指定すると、その内容が上書きされてしまうので注意が必要です。

> 実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。

これって、入力ファイル名にソースファイルを指定していませんか?
入力をキーボードからにしたければ、「< 入力ファイル名」は書かないようにします。

> つまり、何文字、何行打ち込もうとも、

ちょっとこれが不明だったんですが、入力ファイルを指定しているにも関わらず、入力できたということでしょうか?
普通、入力ファイルを指定すると、キーボードから入力する代わりにファイルの内容が読み出され、キー入力待ちにはならないはずなんですが・・・

不明な点は、また補足ください。
お礼コメント
yosiyosi

お礼率 58% (109/185)

出来ました。
いろいろありがとうございました。
投稿日時 - 2002-01-04 17:16:49
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1
レベル11

ベストアンサー率 33% (131/392)

>文字数がでません。 この意味がわかりません! 文字数+改行数になるようですが? 0とでるのですか? 自信なし!
>文字数がでません。

この意味がわかりません!

文字数+改行数になるようですが?
0とでるのですか?

自信なし!


  • 回答No.2
レベル12

ベストアンサー率 75% (398/526)

過去にも同様の症状での質問がありました。(下記URL) 入力の終了には Ctrl+Z を使いますよね。 どうもこれが悪さをして、次の1行が表示されなくなる(消される?)ようです。 恐らくMS-DOSのコンソール入出力制御が、そういう仕様なのでしょう。 これはあくまでコンソール上での話なので、出力をファイルへリダイレクトすれば正しく結果が書き込まれますし、入力をファイルからリダイレクトさせ ...続きを読む
過去にも同様の症状での質問がありました。(下記URL)

入力の終了には Ctrl+Z を使いますよね。
どうもこれが悪さをして、次の1行が表示されなくなる(消される?)ようです。
恐らくMS-DOSのコンソール入出力制御が、そういう仕様なのでしょう。

これはあくまでコンソール上での話なので、出力をファイルへリダイレクトすれば正しく結果が書き込まれますし、入力をファイルからリダイレクトさせれば正しい結果が表示されます。

DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。

# リダイレクトというのは、出力先を画面からファイルに変えたり、入力元をキーボードからファイルに変えたりする方法です。
# hoge.exe > out.txt  とすれば、結果がファイルに書き込まれ、
# hoge.exe < in.txt  とすれば、ファイルの内容が入力に使われます。
# もちろん、in.txt には、予め入力したい内容を書き込んでおく必要があります。
補足コメント
yosiyosi

お礼率 58% (109/185)

>DOS窓内のみで作業が必要なら、文字数を出力する前に、改行を1つ出力すればOKです。

これは解りました。

> hoge.exe > out.txt  とすれば、結果がファイルに書き込まれ、

これは、このままDOSに打ち込むのでしょうか?
解らなかったので以下を実行しました。

実行ファイルの名前 < 入力ファイル名 > 出力ファイル名 でやって見のですが、プログラム全体の文字数、改行数が表示されて、実行結果の文字数、改行数が表示されません。
つまり、何文字、何行打ち込もうとも、
文字数=293
改行数=18となります。
例えば、
aaa
aaa
  
の場合、
文字数=8
改行数=2
という具合に、出力ファイルに出ないのでしょうか?
よろしくお願いします。
投稿日時 - 2001-12-22 09:08:49
このQ&Aのテーマ
このQ&Aで解決しましたか?
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ