while(scanf("%d,&n")!=EOF)
如果n被成功讀入,則返回值為1,
如果n未被成功讀入,則返回值為0,
如果遇到錯誤或遇到end of file,返回值為EOF。
那么什么時候返回EOF呢,簡單來說在Windows下按住Ctrl+Z,在Mac下按住Ctrl+D,作為結束流的信號。
當然你有一些特殊的要求,比如我想讓n=0時結束。
while(scanf("%d",&n)!=EOF) { if(n==0) break; }
當然我將全部方法總結如下
例如:
while(scanf("%d",&n)!=EOF) while(~scanf("%d",&n)) -------------------------------------以上可以按Ctrl+Z或Ctrl+D來結束,按0時會繼續輸入 while(scanf("%d",&n)&&n!=0) while(scanf("%d",&n)&&n) //上一步簡化后,相當於while(n)<--這個n是你輸入的值 while(scanf("%d",&n),n) -------------------------------------以上是在輸入0時結束,按Ctrl+Z或Ctrl+D無效 while(scanf("%d",&n)==1&&n) -------------------------------------既可以按0時結束,也可以以按住Ctrl+Z或Ctrl+D結束
以上都是輸入一種變量時。
當然有題目也需要兩種變量,同樣的道理。
while (scanf("%d %d",&m,&n)!=EOF) while (~scanf("%d%d",&m,&n)) -----------------------------------------------------以上可以按Ctrl+Z或Ctrl+D來結束,按0 0時會繼續輸入 while(scanf("%d%d",&m,&n)&&m&&n) while(scanf("%d%d",&m,&n),m,n) while(scanf("%d%d",&m,&n)==2,m,n) --------------------------------------------以上是在輸入0 0時結束,按Ctrl+Z或Ctrl+D無效 while(scanf("%d %d",&m,&n)==2&&m&&n) ---------------------------------------------既可以按0 0時結束,也可以以按住Ctrl+Z或Ctrl+D結束