
簡単な質問で恐縮ですが、現在WindowsでVC++2010Expressでコードを書いています。
そこで、以下の様な入力文字数を返すコードを書いているのですが、コマンドプロンプト上でCtrl+Z(Ctrl+Dも試した)を押してもストップしてくれません。(コマンドプロンプト上に「^Z(^D)」と表示されるだけです。
どなたか教えて頂けませんでしょうか?
#include <stdio.h>
int main()
{
int strText;
int counter=0;
while( (strText=getchar() ) != EOF){
++counter;
}
putchar(counter);
return 0;
}
No.4
- 回答日時:
>ところで、(仕様にもよるでしょうが)何も言われていない場合であれば通常キャラクタのカウントにはスペースやタブ、改行は含めるのでしょうか?
コード次第…でしょう。
なお、掲示されているコードは「入力した文字のカウント」ではなく「getchar()がEOF以外の値を返却した回数のカウント」となっているハズです。
# gets()やscanf()などとは違い、「BackSpace」や「Delete」も1文字としてカウントするでしょうし。
仕様と言っているのは「getchar()が戻ってくる際の仕様」かと。
たいていgetc(stdin)のマクロになっていると思われますので、そちらの仕様次第…と。
この回答への補足
>「BackSpace」や「Delete」も1文字としてカウントするでしょうし。
私もそれが気になって「BackSpace」や「Delete」も試してみましたが、カウントされずに表示通りの文字数が返って来ました。
この辺の動作が不明なのですが、「getchar()がEOF以外の値を返却した回数のカウントとなっているハズ」ではないのでしょうか?
No.3
- 回答日時:
>ところで、(仕様にもよるでしょうが)何も言われていない場合であれば通常キャラクタのカウントにはスペースやタブ、改行は含めるのでしょうか?
スペースとタブは数え、改行は数えませんね。
タブはデータ上は1文字ですが、見た目には4文字や8文字になるので
4や8とカウントすることもあります。
要は画面や印刷で数えたものと一致させることですね。
No.1
- 回答日時:
Windows+vc2013で動かしてみました。
Ctrl+Zをおすと^Zと表示されて、その後enterを押すと終了しました。
ちなみに
putchar(counter); ではなくて、
printf("%d\n",counter); にしましょう。
それに(仕様によりますが)enterも数えています。
この回答への補足
VS2013とVS2010でこの辺のことが違うということはないと思うのですが。
あれから、特に何もコードをいじること無しに動くようになりました。Linkが見つからないとエラーが出ていたので、そこのフォルダから一度開き直したからかもしれません。
printfは先にそれで試してならなかったのでputcharを書いておりました。正常にコンパイルされてからはputcharではエラーが出るので書き換えました。
ところで、(仕様にもよるでしょうが)何も言われていない場合であれば通常キャラクタのカウントにはスペースやタブ、改行は含めるのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
scanfの入力をgets関数で読み捨...
-
C言語 行列計算
-
C言語初心者です。ファイルの読...
-
小数か整数かを判定する方法
-
プログラミングの問題で、キー...
-
電卓の小数点
-
scanf が無視されます
-
4桁の数字以外を入力したらエラ...
-
数字以外が入力されたらエラー...
-
c言語応用で血液型判定プログ...
-
Linuxで入力待ちなしkeyread関...
-
Javaの質問です
-
C言語で作成したプログラムの...
-
Eclipseコンソール表示を、リセ...
-
C++:cinが上手く使えない
-
Aの値からBの値を除するとは??
-
信頼区間の1.96や1.65ってどこ...
-
c languageで 簡単な質問があ...
-
エクセルで可視セルにのみ値貼...
-
20'(角度)の計算がわかりま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数字以外が入力されたらエラー...
-
正負を反転させて出力するプロ...
-
プログラミング初心者です。 Py...
-
*をユーザーが入力した数字の数...
-
java初心者です。入力されたの...
-
コマンドプロンプトからのEOFの...
-
4桁の数字以外を入力したらエラ...
-
Eclipseコンソール表示を、リセ...
-
Excel VBAで、Application.Inpu...
-
"scanf"でエンターで改行させな...
-
cout関数を使っているのですが...
-
プログラミングの問題です 「金...
-
scanf関数について
-
Userformの入力順序をタブオー...
-
C言語でgetchar();が上手く使え...
-
プログラムの実行時に'<'でリダ...
-
C言語初心者です。ファイルの読...
-
scanf が無視されます
-
実行結果の順番がおかしいんで...
-
C言語scanf_sで何故か2回入力に...
おすすめ情報