重複の可能性:
fgetsによるキャリッジリターン
私はこのコードを持っています:
char arch[80];
fgets (arch, sizeof(arch), stdin);
その値にアクセスすると、arch
入力した値のstdin
後に疑問符が表示されますが、なぜこれが発生するのですか?
重複の可能性:
fgetsによるキャリッジリターン
私はこのコードを持っています:
char arch[80];
fgets (arch, sizeof(arch), stdin);
その値にアクセスすると、arch
入力した値のstdin
後に疑問符が表示されますが、なぜこれが発生するのですか?
fgets()
末尾の改行を格納します:
fgets()は、ストリームから最大で1つ小さいサイズの文字を読み込み、sが指すバッファーにそれらを格納します。EOFまたは改行の後で読み取りが停止します。改行が読み取られると、バッファに格納されます。'\ 0'は、バッファの最後の文字の後に格納されます。
ある種のデバッガーで変数を検査している場合、改行が「?」または「疑問符」の意味で表示される可能性があります。
私の推測では、これは\n
、の値を調べるために使用するすべてのラインターミネータを表していると思いますarch
。SOには回線の終端に関して多くの質問がありますが、それに対処するためのいくつかの方法を簡単に見つけることができると確信しています。