アプリ版:「スタンプのみでお礼する」機能のリリースについて

c言語の質問です。

while((c=getc(stdin))!=EOF){
putchar(c);
}

というコードを見たのですがprintf(),scanf()ではだめなのですか?

A 回答 (4件)

まだ、回答できるようなので、、、



printf(), scanf() の後ろについている f はその機能から察するに format の f です。
プログラマが想定した形式のデータを待って取り込んだり、形式に整えて出力するときに使います。
ご提示のコードは1文字づつ処理をするループなので scanf(), printf() では適応しにくい、もしくはその必要のない、
処理をしようとしているのでしょう。

良い とか だめ ではなく その方がよい。 が答えでしょう。
    • good
    • 0

既に回答はありますが…



他の理由としてはscanf()やprintf()では多機能なぶんだけ処理が重い…ってのもあるかも知れません。
まぁ、今時のCPUならたいした差は無いでしょうけど。
    • good
    • 0

挙動としては printf/scanf でも同じことができるけど, #1 でも言われているように「1文字ずつ処理したい」という意図で getc/putc を使ってる, のかな.



getc と putchar だとなんとなく違和感があったりしますが.
    • good
    • 0

この前側で何を行っているか不明ですが、標準入力が終わったところで入力された文字列を読み取って一括処理するのではなく、1文字入力されるたびにその1文字を読み取り処理したいのでgetc()とputchar()を用いています。


getc()でEOFを判定しているという事はそういう事です。

参考まで。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!