1樓:手機使用者
如:scanf("%d,%d", &a, &b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
你上邊的兩個都是看返回值來判斷的 至於while(~scanf("%d",&n)) 沒用過
t>>=1 即t = t >> 1 右移一位 再賦值 應該是
2樓:堵寄靈
~是位運算子,不是關係運算子,原資料型別是什麼得到就是什麼型別,不是bool型別,不可以作為條件判斷。
3樓:匿名使用者
scanf返回值為讀入的元素數目
~為按位取反
(若32位情況下)
eof是 -1 , 二進位制表示為 0xffff ,即0x11111111..1111(全1)
!=eof ,即不等於 -1 ,不等於 0xffff。此時while迴圈內語句執行
~scanf為真 即其!= 0xffff 因為至於當一個數為0xffff時,~這個數才有可能為0,即只有-1的取反是0;故當返回值不等於-1時,其取反不為0,此時while迴圈內語句執行。
故在這種情況下,兩者相同,即決定何時退出迴圈體。
while(scanf("%d",&n)!=eof)與while(scanf("%d",&n))有什麼區別!!急求
4樓:
好吧,我來回答剩下的問題while(~scanf("%d",&m)) 『~』是取反符號,這就是說,只要scanf錄入的不是符合要求的值,就會停止錄入,^z,^c都會退出,如果是非%d的輸入流,就會出現根據編譯器不同的結果……具體的我也不是很清楚,自己試試吧~
5樓:熱情牛肉炒飯
知識1:只有-1取反(~-1)是0
知識2:scanf讀入到eof時返回-1
所以,while(~scanf)就是不斷讀取執行迴圈,直到eof(和while(scanf("%d",&n)!=eof)一個意思)。一般這種用法在oj(確保資料正確)上使用,平常真的用不到
6樓:匿名使用者
如:scanf("%d,%d", &a, &b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
你上邊的兩個都是看返回值來判斷的 至於while(~scanf("%d",&n)) 沒用過
t>>=1 即t = t >> 1 右移一位 再賦值 應該是
7樓:
你試試把標準輸入流重定向到一個檔案,看兩種寫法有沒有區別罷。
t>>=1 就是 t = t >> 1
很多算符都有這種寫法,比如 +=, -=, *=, /=, %=, ^=……
8樓:匿名使用者
最後一個簡單
就是t = t>>1;右移一位操作.相當於除以2.
scanf的返回值是正確讀入的元素個數,後面那個while(~...)沒見過,但是意義很明顯,正常情況是返回1,~表示按位取反,對1取反,這樣其實沒有多少實際意義.
scanf!=eof常常用於判斷是否結束輸入( ctrl+z(windows下)或者ctrl+d(unix下) )
while(scanf)即表示根據正確讀入變數個數判斷是否結束輸入,這常常會出意想不到的出錯.
簡單實驗一下應該可以得到較滿意的答案.
9樓:說歷史的大白
scanf()函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。
~ 按位取反運算子
>>=右移後賦值運算子
10樓:匿名使用者
你記得 t+=1
==》 t=t+1;
t>>=1
==>> t=(t>>1);
while(~scanf("%d",&a))和while(scanf("%d",&a)!=eof)有區別嗎?
11樓:風若遠去何人留
完全一樣
~scanf("%d",&a) 等效於 (~scanf("%d",&a))!=0
而如果~n值為0, 說明n的各個位都是1, 也就是n=0xffffffff
對於有符號數(scanf返回值是int型。) 也就是-1所以 ~scanf("%d",&a) 和scanf("%d",&a)!=-1 是等效的
eof在c的定義中,值就是-1
12樓:
二者效果是一樣的,都是scanf("%d",&a)返值為-1時停止迴圈,否則繼續迴圈。
13樓:哈
補充一下「~」是取反的意思,就是取一個數的二進位制反碼
而語句的值為0時為假 不為0時為真
while(scanf("%d",&n)!=eof)與while(scanf("%d",&n))有什麼區別!!急求
14樓:羊聽雲袁鶯
好吧,我來回答剩下的問題while(~scanf("%d",&m))
『~』是取反符號,這就是說,只要scanf錄入的不是符合要求的值,就會停止錄入,^z,^c都會退出,如果是非%d的輸入流,就會出現根據編譯器不同的結果……具體的我也不是很清楚,自己試試吧~
15樓:裴夏瑤邴珍
scanf()函式返回成功賦值的資料項數,讀到檔案末尾出錯時則返回eof。
~按位取反運算子
>>=右移後賦值運算子
16樓:騎南煙叔潔
最後一個簡單
就是t=
t>>1;右移一位操作.相當於除以2.
scanf的返回值是正確讀入的元素個數,後面那個while(~...)沒見過,但是意義很明顯,正常情況是返回1,~表示按位取反,對1取反,這樣其實沒有多少實際意義.
scanf!=eof常常用於判斷是否結束輸入(ctrl+z(windows下)或者ctrl+d(unix下))while(scanf)即表示根據正確讀入變數個數判斷是否結束輸入,這常常會出意想不到的出錯.
簡單實驗一下應該可以得到較滿意的答案.
17樓:凌瀅瀅花世
scanf("%d",
&n)是輸入一個值。
while(
scanf(..)
!=eof
)就是一直從讀取資料中
判斷讀到一個eof標記為止
eof是
endof
line的意思,也就是行結束標識
18樓:羅豫柳翊
如:scanf("%d,%d",
&a,&b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end
offile,返回值為eof。
你上邊的兩個都是看返回值來判斷的
至於while(~scanf("%d",&n))沒用過t>>=1即t=
t>>1右移一位
再賦值應該是
c語言中while(scanf(%c,&a)!=eof)的用法,要詳細解釋
19樓:it圈新鮮事
while(scanf(%c,&a)!=eof),這個是如果讀取正確,則一直讀取資料。
陣列直接用a,是指傳遞了a陣列的首地址,根據a的偏移量讀取資料。a是指單獨賦值陣列中的某個值。
儲存字串用字元陣列,可以直接賦值,也可以按照下標賦值,按照下標賦值需要在結尾手動新增「\0」。
while(scanf("%c", &ch)!=eof)什麼意思?
20樓:匿名使用者
eof是一個巨集,代表檔案結束
這個的意思就是隻要拿到的字元不是eof就繼續迴圈。
21樓:尋秦記記
從標準輸入輸入字元,直到遇到結束符為止
while(scanf("%d",&n)!=-1)和while(scanf("%d",&n)!=eof)有什麼區別??
22樓:匿名使用者
eof是檔案結束符,它的值可以是-1,也可以是別的。
比如文字檔案中,資料都是用ascii**存放,其值的範圍是0~255,不可能出現-1,因此可以用eof作為檔案結束標誌。
在這裡沒有區別
c語言while(scanf("%d",&n)!=eof)是什麼意思?
23樓:匿名使用者
scanf("%d", &n) 是輸入一個值。
while( scanf(..) != eof ) 就是一直從讀取資料中 判斷 讀到一專個eof標記為止
eof 是 end of line的意思,也就是行結束屬標識
24樓:匿名使用者
scanf("%d", &n) 是從標準輸入讀入一個整數賦值給n,並且返回值是讀入的值。
while( scanf(..) != eof ) 就是一直從讀取數專據,直到讀到一個屬eof標記為止
eof 是 end of line的意思,也就是行結束標識
25樓:sweet丶奈何
如:scanf("%d,%d", &a, &b);
復如制果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
上邊的兩個都是看返回值來判斷的 至於while(~scanf("%d",&n)) 沒用過
t>>=1 即t = t >> 1 右移一位再賦值。
c語言中scanf和printf函式的問題關於雙精度
其實嚴格來說 兩個是一樣的 輸入的時候要用 lf 輸出的時候也要用 lf 的 f能輸出double 我也不懂 哈哈 你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲 lf長浮點型,f浮點型 1f 小數點後1位 如果是 輸出printf 的輸...
c語言printf和scanf中的2c是什麼意思
printf為輸出,scanf為輸入,2c輸入或輸出字元,寬度為2 在printf函式中如果輸出的超過2個字元還是會按原來的字元 如果不足2個字元 會補空格。輸出字元的固定長度為2.如 char s a printf 2c s 輸出為 空格a 指定欄位寬度 c是輸出字元 當前的意思是 輸出一個字元 ...
c語言中scanf裡面要求輸入的變數也要初始化嗎
int scanf const char format,scanf 函式是格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。其呼叫格式為 scanf 格式化字串 地址表 函式 scanf 是從標準輸入流 stdio 中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。你的下面...