我剛開始學習編程(C)作爲一種愛好,我自己。我用k & R.(練習1.6 K&R)如何確定getchar()!= EOF是0還是1?
main()
{
int c;
while ((c = getchar()) != EOF)
putchar(c);
}
驗證的getchar()= EOF爲0或1
我想我明白髮生了什麼事!
- c被分配了鍵盤的下一個字符
- 檢查c是否是EOF
- c被分配1或0,這取決於它是否是EOF。
- 字符顯示在輸出上,或者EOF結束程序。
然而,我的解決方法是錯誤的,那麼顯然我不理解的東西:
main()
{
int c;
while ((c = getchar()) != EOF)
printf("%d\n", c);
}
這只是打印字符的值。如果按回車鍵,也會打印「10」。
我以爲它會打印c。但是,它將打印字符的值而不是1或0值。
我知道c與EOF比較後被賦予1或0。但我不確定我可以用什麼邏輯來展示這一點。看起來我需要以某種方式「擺脫」顯示字符值,而是顯示比較值。這是否意味着我需要擺脫while循環?如果是這樣,我不知道如何(這只是一個猜測)。
如何簡單驗證c = 1或0?
而且,我應該怎麼知道呢?我想我應該從中學到一些基本的東西。
main()
{
int c;
while ((c = getchar()) != EOF != 0 != 1)
putchar(c);
}
我也做了這個,我覺得這似乎工作。由於它不輸出任何字符,但我不確定這是否是他們正在尋找的解決方案...
'X!= y'返回boolean值。你可以通過閱讀C標準來驗證它總是「1」還是「0」(並且假設你的編譯器實際上遵循了它,我想)。(雖然你問另一個與c無關的問題,由'getchar'返回,而不是與EOF比較的值)。 – geoffspear