位置:首頁 > 軟件操作教程 > 編程開發(fā) > C語言 > 問題詳情

C語言 scanf()函數(shù)的數(shù)據(jù)輸入操作

提問人:劉團(tuán)圓發(fā)布時(shí)間:2020-11-28

(1)輸入多個(gè)數(shù)據(jù)的分隔處理。如果在格式字符串中不包含除了格式指示符之外的普通字符,則在輸入多個(gè)數(shù)據(jù)時(shí),可以使用空格隔開,或者按Tab鍵分開,或者按Enters隔開。例如:

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

    假設(shè)要給a輸入12,給b輸入24,則正確的輸入操作為: 12口24/

    或者: 12/

           24/

    或者: 12 24/ (輸入12后,按下Tab鍵)。

(2)當(dāng)“格式字符串”中出現(xiàn)普通字符,務(wù)必原樣輸入。例如:

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

    假設(shè)給a輸入12,給b輸入24,正確的輸入操作為: 12, 24/

(3)當(dāng)scanfO函數(shù)中的格式字符串中出現(xiàn)轉(zhuǎn)義字符(如\n ),系統(tǒng)并不把它當(dāng)轉(zhuǎn)義字符來解釋,從而產(chǎn)生一個(gè)控制操作,將其視為普通字符,所以也要原樣輸入。例如:

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

假設(shè)給a輸入12,給b輸入24,正確的輸入操作為:

    a*12, b=24\n/

(4)輸入數(shù)據(jù)時(shí),遇到以下情況,系統(tǒng)認(rèn)為該數(shù)據(jù)輸入結(jié)束:

①遇到空格,或者按Enters,或者按Tab鍵。

②遇到輸入域?qū)挾冉Y(jié)束。例如“%3d”,只取3列。

③遇到非法輸入。如在輸入數(shù)值數(shù)據(jù)時(shí),遇到字母等非數(shù)值符號(hào)(數(shù)值符號(hào)僅由數(shù)字字符0~9、小數(shù)點(diǎn)和正負(fù)號(hào)構(gòu)成)。例如:

int a,b;

scanf ("%d",&a);

printf("a=%d\n",a,b);

程序執(zhí)行時(shí),當(dāng)輸入:

    123a5/

則輸出:

    a=123, b=-858993460

系統(tǒng)為變量a讀取數(shù)據(jù)時(shí),當(dāng)讀取了 “123”,其后面是字符“a”,這不是一個(gè)合法的數(shù)值字符, 所以認(rèn)為本次輸入結(jié)束。

(5)使用格式說明符“%c”輸入單個(gè)字符時(shí),空格和轉(zhuǎn)義字符均作為有效字符被輸入。例如:

    scanf("%c%c%c".&cl,&c2,&c3);

    printf ( "chl-%c #ch2~%c ,ch3—%c\n".chl,ch2 ,ch3);

    程序執(zhí)行時(shí),若輸入ACDBCIC/,則系統(tǒng)將字母‘A’賦值給c1,空格賦值給c2,字母‘B’賦值給c3。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部