文字をエンコードするための小さなプログラムを書いていますが、NUL 文字の読み取りに問題がある可能性があります。私の問題は、このコードの getchar が CTRL + @ によって入力された NUL 文字を何らかの形で無視することです。
while ((numberOfRead < 40) && (character = getchar()) && (character != EOF) && (character != '\n')) { ... }
しかし、このコードは正しく機能し、NUL 文字を正しく読み取ります。
character = getchar();
while ((numberOfRead < 40) && (character != EOF) && (character != '\n')) {
numberOfChars++;
...
character = getchar();
}
問題の原因となる違いは何ですか?この動作の説明をありがとう。コードは Windows 8.1 で gcc 4.7.1 の下でテストされました