1樓:第五讓營婉
scanf的意思就是接受的意思啊。
你輸入了換行相當於在此接受啊。
2樓:宇文元修宛辛
在printf函式中的''代表換行符,轉義字元只在printf中有意義,在scanf函式中無意義。像樓主這種狀況應該輸入:
"一個數"再按回車鍵。
3樓:網友
你理解錯誤了,在c語言裡面:
printf()函式是格式化輸出函式。
scanf()函式是格式化輸入函式。
4樓:點點滴滴清清風
這個意思就是說該字元所佔的寬度,不過,好像出現在scanf 中的比較少,而在輸出printf中比較常見的!
5樓:匿名使用者
%3c指定字數寬度,scanf("%3c",&a);輸入佔3列,前兩列補空格。
c語言 scanf()函式中使用%lf的問題
6樓:gta小雞
輸入e導致scanf讀取失敗,此時x的值是未定義的。
由於scanf讀入失敗,未能成功讀取的字元e被留在輸入緩衝區中;下次迴圈時,scanf又嘗試讀取輸入緩衝區中的e,自然再次讀取失敗,因而陷入無限迴圈。
7樓:反翽葚讛笀仕藖
不一樣的,這麼都是格式字元,意義如下:格式字元 意 義 d 以十進位制形式輸出帶符號整數(正數不輸出符號) o 以八進位制形式輸出無符號整數(不輸出字首0) x,x 以十六進位制形式輸出無符號整數(不輸出字首ox) u 以十進位制形式輸出無符號整數 f 以小數形式輸出單、雙精度實數 e,e 以指數形式輸出單、雙精度實數 g,g 以%f或%e中較短的輸出寬度輸出單、雙精度實數 c 輸出單個字元 s 輸出字串前面加個%,你自己對照下吧 長度:長度格式符為h,l兩種,h表示按短整型量輸出,l表示按長整型量輸出。
你這個「%lf」,是在定義輸入的型別為double(雙精度)是用的,不明白,你可以測試下: #include void main() 和 #include void main() 我這裡用了2個編譯器分別測試了下,一個如果定義double行,輸入的時候必須要用%lf,一個就不用了,用%f也行,但是精度還是有區別的,綜合以上,如果定義double型資料,輸入最好是用"%lf" .
c語言中關於scanf()函式分隔符問題? 50
8樓:自我程式設計
scanf不指定分割符號時,預設以空格、回車、製表符(tab),作為分割符號,可間隔多個分割符號。
至於你最後列印的c,那是換行符對應的ascii碼,因為你最後輸入的字元是回車。
9樓:網友
scanf函式在沒有人為設定分隔符時 字母和數字之間輸入時不需要加空格分隔符(特別是數字後輸入字元時,一般不要加空格,否則會增加麻煩)
c語言中scanf函式定義寬度的問題
10樓:網友
scanf("%4d",&a);表示若輸入小於或等於四位,則原樣輸出,若輸入大於四位,從左到右擷取你輸入的字元。
scanf("%4d",&a);表示若輸入小於或等於四位,則原樣輸出,若輸入大於四位,從右到坐擷取你輸入的字元。
11樓:_殘陽_古道
這個問題問的好。
你問題的第二種情況是說如果輸入多個字元型別資料的情況。
如果是這樣,請注意,除非,如果scanf後面的格式是%c的,那麼它只能吸收你輸入的一個字元,後面的東西全部放在快取區。也就是說,你再接上一個scanf( "c", c),它會繼續吸收你前面沒有吸收到的字元。
如果下面語句段:
scanf( "c", ch1 );
scanf( "c", ch2 );
scanf( "c", ch3 );
你輸入"ab"後按回車。那麼,a被ch1吸收,b被ch2吸收,ch3呢?你是不是以為沒有東西吸收?其實你輸入ab後按了回車,所以回車被ch3吸收了。這點一定要小心。
你的問題第一種情況就明顯很多了。
比如你的scanf語句吸收格式欄位是%4f,但是你輸入了那麼,它只會吸收,作為浮點型別。後面的15926以整型的方式存在於快取中。
學c語言一定要不停的去體悟它的輸入輸出,個人覺得它的重要性僅次於指標。
c語言中的scanf 函式的用法
12樓:次次次蛋黃米亞
1、用法:int scanf(char *format[,argument,..
scanf()函式是通用終端格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。
2、其呼叫格式為:
scanf("《格式化字串》",地址表》);
scanf()函式返回成功賦值的資料項數,出錯時則返回eof。
3、scanf()函式的控制串的使用:
#include ""
int main(void)
13樓:兔丞飛
輸出的值只是空格前面的字元是因為scanf函式的輸入格式錯誤,輸入引數的變數前需要加&。
scanf("%s",s);改為scanf("%s",&s);
scanf的用法是:scanf("格式控制字串",輸入引數一,輸入引數二);
格式控制字串包含:格式控制說明,普通字元。
1、格式控制字串表示輸入的格式,(int型用%d,float用%f,double型用%lf)
2、普通字元:在輸出資料的時候,按照原樣輸出的字元,如:"fahr=%d,celsius=%d"中的fahr=,celsius=。
3、輸入的引數是變數的地址,所以要在變數前面加&。
14樓:小肥肥
首先需要#include int scanf( const char *format, .scanf()函式是格式化輸入函式,它從標準輸入裝置(鍵盤) 讀取輸入的資訊。
第一個引數format為一個常量字串,這個字串中如果包含『%』符號則使用後續引數進行匹配。
如:scanf("%d%d", a, &b)。
15樓:如此_青春
scanf 函式最主要的用法是:
scanf("輸入控制符", 輸入引數);
用scanf()函式以%s格式讀入的資料不能含有空白符時,所有空白符都被當做資料結束的標誌。所以題中函式輸出的值只有空格前面的部分。
如果想要輸出包括空格在內的所有資料,可以使用gets()函式讀入資料。gets()函式的功能是讀取字串,並存放在指定的字元陣列中,遇到換行符或檔案結束標誌時結束讀入。換行符不作為讀取串的內容,讀取的換行符被轉換為字串結束標誌'\0'。
16樓:星座
scanf 後面的引數,就是要 寫變數的 地址。所以 int a,b; 就要 用 &a,&b 形式來呼叫 scanf.可是,如果是字串,char s[10]; scanf("%s",s); 引數 s 就 不要 &.
因為 s 就是 地址形式。scanf("%d,%d", a, &b); 還有,你這句輸入時,a b 資料之間還要加逗號。例如 12,34
因為格式裡有逗號。
17樓:魚與鹹魚
1、空白符問題。
#include
main()
2、回車符也佔位。
#include
main()
3、scanf()函式的引數輸入型別不匹配問題#include
main()
關於c語言scanf工作原理的問題
18樓:壤駟新之空錕
第一個問題,因為你的scanf函式使用了域寬來指定讀入的格式。所謂域寬,就是說讀入的時候把某個寬度內的值付給某變數。那麼。
你第一個引數讀入規則是%3c,意思是設定域寬為3,讀入一個char型資料。你輸入的是abcde。那麼前面的abc將作為第一個引數給一個char型資料。
而char型資料只需要一個字元,所以a就給了c1,其間的bc被忽略。後面同理了。第二個問題,樓上大致說明白了。
不解釋。
19樓:weida愛問
您好!!對於scanf的工作原理,你可以參考下scanf函式的使用說明。對於任何不按照scanf函式格式進行輸入的情況,都會導致得不到正確結果!
why??為什呢??對於這個問題,我是不推薦初學者去深究的,因為沒有意義!
scanf這個函式是一個庫函式,用於按照指定格式從鍵盤讀取資料,內部實現機理是較為複雜的,如果可以您可以去檢視下scanf函式的實現原始碼,但沒有必要深究!
20樓:匿名使用者
scanf("%d,%d", a, &b);
如果a和b都被成功讀入,那麼scanf的返回值就是2如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為eof。
且返回值為int型。
關於c語言中用scanf函式如何輸入資料的問題
21樓:匿名使用者
如果scanf中%d是連著寫的如「%d%d%d」,在輸入資料時,資料之間不可以加逗號,只能是空格或tab鍵或專者回車鍵——「2 3 4」
「2(按。屬tab)3(按tab)4(按tab)」。
若是「%d,%d,%d」,則在輸入資料時需要加「,」2,3,4」.
在輸入多個數值資料時,若格式控制串中沒有非格式字元作輸入資料之間的間隔,則可用空格,tab或回車作間隔。 c編譯在碰到空格,tab,回車或非法資料(如對「%d」輸入「12a」時,a即為非法資料)時即認為該資料結束。
22樓:匿名使用者
你的scanf("%c%c,&c1,&c2")寫錯了。
應該是scanf("%c%c",&c1,&c2)
C語言scanf 函式中使用lf的問題
編譯器問題 因為我是vs2012,所以沒有問題。原因是編譯器在編譯的時候沒有連結浮點數相關的庫,可以在定義變數的時候初始化一下。double a 0.0,像這樣,然後應該就ok了。scanf lf lf a,b printf lf lf a,b 注意程式格式書寫,必須用英文ascii 碼,例如 空格...
c語言中, scanf函式是什麼意思?
scanf是手動輸入並賦值給相應引數。例如scanf 輸入a引數 d a 即給輸入數字給a賦值。在程式執行之後從鍵盤錄入。c語言中scanf有什麼作用,scanf是c語言中的一個輸入函式,與printf函式一樣,都被宣告在標頭檔案裡,因此在使用scanf函式時要加上 include 在有一些實現中,...
c語言scanf函式輸入時鍵盤緩衝區n的問題
你首先要明白,從鍵盤讀入鍵盤緩衝區 buffer 的資料都是以ascii碼儲存的 包括回車 程式1 include stdio.h void main 鍵盤輸入 97 回車 第一次回車後,buffer中的ascii 39h,37h,0ah 0a是換行的ascii scanf會根據格式字串中的第一個 ...