アカウント名:
パスワード:
printf(some_string_text); は、 printf("%s", some_string_text); としなさいというのがあり、目から鱗が落ちました。
fputs(some_string_text, stdout);
最初の「動作が違う」という指摘は、もし意図的に重箱の隅をつつくつもりでなかったとすれば、fputs() ではなく puts() と勘違いしたのかな。
どーでもいいことかも知れませんが、gcc の一部には printf("string constant\n")をputs("string constant")にすげ替えちゃうのがいるようです。
# printf 書いて気づいた
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
吾輩はリファレンスである。名前はまだ無い -- perlの中の人
分量がすごそうなんですけど… (スコア:1)
Re:分量がすごそうなんですけど… (スコア:0)
ざっと目を通しましたが、やっぱり、C/C++プログラマとして、
文字列処理系の問題は頭が痛いなぁと思いました。
最後の方に、
printf(some_string_text);
は、
printf("%s", some_string_text);
としなさいというのがあり、目から鱗が
Re:分量がすごそうなんですけど… (スコア:2, 参考になる)
fputs(some_string_text, stdout);
にせよ、と教えてるんですけど... (セキュリティ以前の問題で)。Re:分量がすごそうなんですけど… (スコア:1)
Re:分量がすごそうなんですけど… (スコア:0)
printf("%s", some_string_text);
と
fputs(some_string_text, stdout);
ではどのように動作が異なるのですか?
Re:分量がすごそうなんですけど… (スコア:2, 参考になる)
1.成功時の戻り値の仕様
printf:転送された文字数を返す。
fputs: 非負の値を返す。
2.エラー時の戻り値の仕様
printf:出力エラーが発生したときは、負の値を返す。
fputs:書込みエラーが発生するとEOFを返す。
3.変更、拡張への対応
"%s"を前提としている場合でも、
Re:分量がすごそうなんですけど… (スコア:0)
fputs(some_string_text, stdout);
これらの例では返り値を捨てているので、
1.成功時の戻り値の仕様
2.エラー時の戻り値の仕様
の違いは動作には影響しないと思います。
また、大元が
printf(some_string_text);
という変更・拡張を考慮しないコードで
Re:分量がすごそうなんですけど… (スコア:0)
最初の「動作が違う」という指摘は、もし意図的に重箱の隅をつつくつもりでなかったとすれば、fputs() ではなく puts() と勘違いしたのかな。
Re:分量がすごそうなんですけど… (スコア:1, 興味深い)
どーでもいいことかも知れませんが、gcc の一部には printf("string constant\n")をputs("string constant")にすげ替えちゃうのがいるようです。
# printf 書いて気づいた