我一直在通過K & R在C編程語言中的一些例子,但我對我在練習1-12中做過的測試感到困惑我切換了if和else語句。切換如果和否則不會產生相同的結果
問題是:編寫一個程序,每行打印一個字的輸入。
所以基本上要測試出\ n而忽略單詞之間的多個空格,我首先寫了這個。
#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF) {
if (c == ' ' || c == '\t') {
printf("\n");
}
else {
putchar(c);
}
}
}
在這其中,就在看到空格或製表符打印出一個新的段落,如果沒有,然後將其複製完全輸入。
此代碼產生了我想要的結果(當然還有來自多餘的空格中輸入單詞之間還額外段落,但我忽略了現在)
然後,我決定看看發生了什麼,如果我切換我的if和else語句在改變條件的時候,但事實證明結果是不一樣的。
#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF) {
if (c != ' ' || c != '\t') {
putchar(c);
}
else {
printf("\n");
}
}
}
在這一個,我希望它打印出不是空白或選項卡,如果不是,它會創建一個新的段落。
我預計新的條件會產生相同的結果。相反,它只是複製我輸入的內容。有誰知道爲什麼這不起作用?
我想你是指'if(!(c ==''|| c =='\ t')){'。 :-) – MRAB 2012-08-16 22:23:22
@MRAB:哦,天啊。謝謝! – 2012-08-16 22:23:55
我看到現在發生了什麼事。這一個讓我陷入了一段時間。謝謝! – user1604449 2012-08-16 22:28:58