1. 程式人生 > >c語言 用scanf函式輸入資料,舉例並分析錯誤原因

c語言 用scanf函式輸入資料,舉例並分析錯誤原因

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

用scanf函式輸入資料,舉例並分析錯誤原因

用下面的scanf函式輸入資料,使a=3,b=7,x=8.5,y=71.82,c1=A,c2=a。問在鍵盤上如何輸入。

程式:

#include<stdio.h>

int main()

{

 int a, b;

 float x, y;

 char c1, c2;

 scanf("a=%d b=%d",&a,&b);

 scanf("%f %e",&x,&y);

 scanf("%c%c", &c1, &c2);

 printf("a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n",a,b,x,y,c1, c2);

 return 0;

}

輸入方式一及結果分析:

a=3 b=7

8.5 71.82Aa

a=3,b=7,x=8.500000,y=71.820000,c1=A,c2=a

請按任意鍵繼續. . .

在輸入8.5和71.82兩個實數給x和y後,應緊接著輸入字元A,中間不要有空格,由於字母A不是數字,系統在遇到字母A時,就確定輸入給y的值已經結束,字元A就送到下一個scanf語句中的字元變數c1。

輸入方式二及結果分析:

a=3 b=7

8.5 71.82 Aa

a=3,b=7,x=8.500000,y=71.820000,c1= ,c2=A

請按任意鍵繼續. . .

在輸入8.5和71.82兩個實數後,輸入的空格符就被c1讀入,c2讀入了字元A,故輸出c1時就輸出空格,輸出c2的值為A。

輸入方式三及結果分析:

a=3 b=7

8.5 71.82

Aa

a=3,b=7,x=8.500000,y=71.820000,c1=

,c2=A

請按任意鍵繼續. . .

在輸入8.5和71.82兩個實數後,按回車鍵再輸入Aa,這時“回車”被作為一個字元送到記憶體輸入緩衝區,被c1讀入,字元A被c2讀取,故在輸出c1時,就輸出一個換行,在下一行輸出逗號和c2的值A。


本文出自 “巖梟” 部落格,請務必保留此出處http://yaoyaolx.blog.51cto.com/10732111/1740239

           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述