C語言,關於scanf控制格式輸入小數的問題

2023-02-13 22:50:03 字數 4778 閱讀 6920

1樓:物理公司的

scanf格式控制的完整格式:

% *m l或h 格式字元。

①格式字元與printf函式中的使用方式相同,以%d、%o、%x、%c、%s、%f、%e,無%u格式、%g格式。

②可以指定輸入資料所佔列寬,系統自動按它擷取所需資料。如:

scanf(「%3d%3d」,&a,&b);

輸入:123456

系統自動將123賦給a,456賦給b。

③%後的「*」附加說明符,用來表示跳過它相應的資料。例如:

scanf(「%2d%*3d%2d」,&a,&b);

如果輸入如下資訊:1234567。將12賦給a,67賦給b。第二個資料」345」被跳過不賦給任何變數。

④輸入資料時不能規定精度,例如:

scanf(「%a);

是不合法的,不能企圖輸入:而使a的值為。

c語言中,scanf和printf函式的問題,關於雙精度double,格式控制

2樓:匿名使用者

其實嚴格來說 兩個是一樣的 輸入的時候要用%lf 輸出的時候也要用%lf 的。

%f能輸出double 我也不懂 哈哈。

你就按照 double 對應 lf 理解就可以了能輸出不影響 lf 不能輸入輸出double的時候再問也不遲。

3樓:香夢沉酣

如果是(輸出printf)的輸出項是double或float時,可以用%f或%e作為格式描述字元,(其中double也可以用%lf或%le)。double的意思是可以有16位有效數字,而在固定格式輸出的時候,都預設的是6位,輸出語句printf用double的時候f前面加l是沒有效果的,你要輸出長度,可以寫,%,這樣就是輸出8個有效數字了,要輸出幾位就改0.

後面的引數。

注意:如果是(輸入scanf)的輸入項為double時,則必須用%lf或%le(必須有個l)作為格式描述字元。位於輸入項為float與上面的一致。

當輸入乙個實型資料時,格式控制部分可以規定小數點後的位數,例如: scanf("%4.2f",&d);

4樓:是仙女本仙叭

輸入語句scanf是正確的。

5樓:飄飄渺渺夢逍遙

輸入無法控制。

只有輸出可以。

6樓:匿名使用者

是對的,指定輸出的資料共佔4列,其中有2位是小數……

c語言中用scanf函式輸入字元時,為什麼要在輸入控制符%c前面加空格?用scanf還有哪些要注意?

7樓:愛佳佳的恐龍

如果scanf中%d是連著寫的如「%d%d%d」,在輸入資料時,資料之間不可以用逗號分隔,只能用空白字元(空格或tab鍵或者回車鍵)分隔。

「2 (空格)3(tab) 4」 或 「2(tab)3(回車)4」等。若是「%d,%d,%d」,則在輸入資料時需要加「,」如「2,3,4」。

比如scanf(" c" ,c);

你輸入了' a'(a前面有個空格),a就能被c接受。但控制符前如果沒空格,那c就接受了空格,明白了沒?這個可以防止誤操作,忽略空格輸入,接受第乙個非空格輸入。

8樓:黑白say晚安

加空格遮蔽了空白字元。

%c前沒空格,scanf()將讀取標準輸入流中的第乙個字元,%c前有空格,scanf()則讀取標準輸入流中第乙個非空白字元。

使用scanf函式時應該注意的問題:

scan:掃瞄 f :format,格式1、整數和小數分別使用使用控制符%d %lf 表示(float除外,用%f)。

2、引數前面使用&符號,&號前要空格。

3、scanf輸入語句中替換符後不能加空格,也不能加。

4、scanf()中的變數必須使用位址。

5、scanf()的格式控制串可以使用空白字元或其它非空白字元,使用空白字元會使scanf()函式在讀操作中略去輸入中的乙個或多個空白字元。使用非空白字元會使scanf()函式在讀入時剔除掉與這個非空白字元相同的字元。

6、在用"%c"輸入時,空格和「轉義字元」均作為有效字元。

9樓:西西哩的小馬甲

空格確實不是必須的,但有了空格就可以忽略你輸入的空格。

例如:scanf(" c" ,c),你輸入了' a'(a前面有個空格),a就能被c接受。

但控制符前如果沒空格,那c就接受了空格,這個可以防止誤操作,忽略空格輸入,接受第乙個非空格輸入。

注意事項:對於scanf()而言,%c是個較為特殊的說明符。 %c前沒空格,scanf()將讀取標準輸入流中的第乙個字元,%c前有空格,scanf()則讀取標準輸入流中第乙個非空白字元,遮蔽了空白字元。

10樓:圈圈叉叉叉叉圈

這絕對不是為了美觀,1樓不要誤人子弟。

空格確實不是必須的,但有了空格就可以忽略你輸入的空格,懂我的意思嗎?

比如scanf(" c" ,c);

你輸入了' a'(a前面有個空格),a就能被c接受。但控制符前如果沒空格,那c就接受了空格,明白了沒?這個可以防止誤操作,忽略空格輸入,接受第乙個非空格輸入!

11樓:夏天很冷

空格不是必須的,scanf("%c %c",a,b)只是提示在輸入時兩個字元必須有空格間開。如果是scanf("%c%c",a,b)那沒兩個輸入字元不要有空格,不過程式設計時最好加上空格,這算乙個書寫規範吧,要不然如果你scanf("%s%s",a,b)系統可能區分不了你的字串何時結束。

12樓:湮魂

不是必須加空格,這並不能防止誤輸入的,這種**寫出來,用的人肯定只能是熟知**如何編寫的人,有無空格分隔使用者會根據其格式使用,個人感覺就是為了能讓別人看清楚。

13樓:我要度百

空格不是必須的吧,我們是感覺看起來美觀一些而加入的呀。

c語言中 那個格式控制字串 可以輸入數字和字元

14樓:卒子的瘋狂

%s,可以輸入一串字元,數字、特殊符號、英文都通用。

15樓:匿名使用者

%d可以輸出int型別的整形數字。

%f可以輸出float型別的浮點型也就是小數數字%c可以輸出字元比如英文本母、漢字、特殊字元和數字還有%lf、%ld等可以去了解一下。

c語言中用scanf控制輸入,printf控制輸出。

比如我定義了乙個變數int a;

如果對a進行賦值,就用到了scanf,具體語句:scanf("%d",&a);

如果要對a進行輸出,就要用到printf,具體語句:printf("%d",a);

觀察上面兩個語句,共同點都是有個引號引號裡面是格式控制字元,這個要和你前面定義的int保持一致(如果是float a,那麼就用%f)。不同的是scanf後面用&a,這個&可以讀作and,是位址符,輸入的時候必須在變數前面加上(如果不加,編譯不會出錯但是執行的時候會猶豫記憶體分配等問題而強制退出等),printf直接寫變數就可以了。

c語言scanf函式的格式控制問題

16樓:匿名使用者

空格的ascii碼值為32,scanf ( c%c",&ch1,&ch2 );這樣輸入的話空格也會被當作輸入的值而被接收,scanf ( c %c",&ch1,&ch2 );寫成這樣,則宣告輸入乙個字元必須輸入空格隔開,所以空格沒有被當作輸入的值接收。

17樓:匿名使用者

scanf ( c%c",&ch1,&ch2 );

printf( "c %c",ch1,ch2 );

表示你讀入的字元是連續讀入的,而:

scanf ( c %c",&ch1,&ch2 );

printf( "c %c",ch1,ch2 );

則宣告了你在讀字元的時候會用乙個空格隔開,所以空格沒有被讀入。

18樓:匿名使用者

不是吃掉回車和空格符,是它把空格符給當做%c給了ch1

在c語言中的輸入控制格式中帶個*號是什麼意思?? 例如:scanf("%2d%*3%f",&a,&b,&c)

19樓:匿名使用者

%*3*表示,捨棄一串東西中3個輸入的東東%2d%

2表示,輸入的一串東西,那個變數a只能賦值2位scanf("%2d%*3%f",&a,&b,&c),比如,我輸入12345678

a為12 %2d

由於 %*3的壓制 345 捨棄。

b=678 %f

20樓:匿名使用者

* 表示本輸入項在讀入後不賦值給相應的變數。

例如:scanf("%2d%*3%f",&a,&b,&c)會不賦值給b的。

%3 3指定輸入資料所佔寬度。

在c語言scanf 語句中輸入控制符必須和變數的資料型別保持一致嗎?

21樓:

必須保持一致,否則統統出錯,函式立即返回已成功接收並為對應變數賦值的個數,對後續的變數列表不再理會。

22樓:gta小雞

scanf讀取的變數型別必須和格式定義符一致,否則會導致讀入失敗,甚至程式死迴圈。

printf傳入的變數型別不一定和控制符型別一致。例如,若傳入的是字元,而使用%d輸出,則將輸出該字元的ascii值。其他情況更複雜一些。

若定義double i=並傳入到printf,採用%d輸出,將以有符號整型輸出i的低32位的值。最終結果是-858993459。

c語言怎麼用scanf輸入字串

你的意bai思是輸入多餘的字元吧?du 1 因為zhi你用scanf輸入dao的字元都是輸入到緩衝區中的,例如 內你定義了乙個只接容受乙個字元的變數ch,但卻輸入了多餘的字元,這種情況會給編譯器造成困擾,因為他並不完全智慧型,通常採用這種方法釋放掉緩衝區內多餘的字元輸入 例如 2 char ch s...

C語言「迴圈控制」問題,c語言迴圈控制問題,線上等

建議你問問題時分開問 一題一題問,除非你給的分數夠多 不然很少人會幫你解答 太多了。因為do while 是先執行 再判斷的 do模組為執行模組 while 為判斷模組 所以 1 執行次數為 2while 迴圈剛好相反 只是去除了 do而已 1 do while至少執行一次 2 i 是先使用後減1,...

關於C語言的,關於C語言

看了下你的程式,並親自執行了一下,是沒有錯誤的,正常輸出的結果如下圖 所以對於你的 而言,可以得出一下分析結果 1 在語法 和 邏輯上都是正常的,可以正常執行並列印出結果。2 我猜測,你的這道題應該是針對 static 的練習。static定義的變數,在程式啟動時被建立,直到程式終止才被殺死,在整個...