關於c語言的scanf函式的逗號問題

時間 2021-09-11 22:33:35

1樓:匿名使用者

對於scanf()函式,如果格式控制串裡有逗號(或其他非格式符號),鍵盤輸入時,必須嚴格按照控制串的內容鍵入,不能隨意輸入。如scanf("a=%d,b=%d",&a,&b);響應輸入是a=xx,b=xx(xx是整形數)。scanf()函式還有一個特點較為常用,該函式會將白字元(空格、、)作為資料間的分隔符,比如scanf("%d%s%d",&a,str,&b);,響應輸入是:

12 asder334 35,此後,12賦給a,"asder334 "拷貝到str陣列,35賦給b,且各個資料之間的空白符可以是一個,也可以是多個。

#include

int main() student1,student2;

scanf("%d%s%f",&student1.num,student1.name,&student1.score);

scanf("%d%s%f",&student2.num,student2.name,&student2.score);

if(student1.score > student2.score)

printf("%d,%s,%f\n",student1.num,student1.name,student1.score);

else if(student1.score < student2.score)

printf("%d,%s,%f\n",student2.num,student2.name,student2.score);

else

return 0;}

2樓:匿名使用者

輸入字元wang,89時候這整個應該被預設為字串存入了student1.name

c語言scanf輸入時可以加逗號的嗎?

3樓:你不愛吃烤肉

可以,但是輸入資料的時候一定也要加上逗號。

用scanf()讀取資料時,輸入的格式必須和scanf()的格式控制字串對應,比如說:

1、scanf("%d,%d",&a,&b);因為兩個%d之間有一個逗號,所以在輸入時兩個整數之間只能用逗號分隔,如果用其它符號分隔就會出錯(比如說此時用空格、回車分隔就會出錯)

2、scanf("%d%d",&a,&b);這個格式控制字串就可以用空白分隔(空格,回車都可以)

擴充套件資料:

c語言逗號運算子:

逗號運算子是所有運算子中級別最低的,遇到逗號運算子表示運算結束;

int i=0;

int j=(i++,i++,i++);

printf("i=%d,j=%d\n", i,j);//i=3,j=2;i++遇;才算結束

i=0;

int k=(i++)+(i++)+(i++);

printf("i=%d,k=%d\n", i,k);//i=3,k=0

int a=10;

int b;

int num = (a = 19, b = 10, a + 1);

printf("a=%d,b=%d,num=%d\n", a,b,num);//a=19,b=10,num=20

c語言逗號表示式:

這種型別的運算子成為逗號表示式,又稱為“順序求值運算子”。

int a=10;

a = 3 * 5, a * 4;

printf("%d\n", a);//15;把a = 3 * 5作為一個整體,是一個賦值語句;後面a * 4是另外一個語句;

a=10;

printf("%d\n", (a = 3 * 5, a * 4));//60;括號內是一個整體,它的值是最後一個表示式的值,先執行得出a=15,後運算15*4=60;

a=10;

printf("%d\n", a = 3 * 5, a * 4);//15;這裡的逗號是作為引數的分隔作用,a=15,後面的a * 4沒有列印;

a=10;

printf("%d,%d\n", a = 3 * 5, a * 4);//15,40;

4樓:也不予u與

兄弟們,我終於發現了。

無論課本還是老師講課,都說可以加逗號,只要注意前後格式一致就好。例如scanf("%d,%d",&a,&b);

在程式中也寫 1,2,3

即便這樣 也還是出錯

是因為 即使在你寫程式時,逗號都是用英文的。

但是!在你自己寫的程式裡鍵入時,不知為啥自動變為中文,所以注意用英語逗號就好了。

5樓:匿名使用者

能加,但是像上面的,執行輸入兩個整數時,也要加逗號

6樓:導一導函式

逗號輸入時可能須要中文格式的逗號才能行

7樓:匿名使用者

可以加,但是最好還是不加吧!!!如果是競賽的話,規則基本上都是不加,

c語言中的scanf 函式的用法

次次次蛋黃公尺亞 1 用法 int scanf char format argument,scanf 函式是通用終端格式化輸入函式,它從標準輸入裝置 鍵盤 讀取輸入的資訊。可以讀入任何固有型別的資料並自動把數值變換成適當的機內格式。2 其呼叫格式為 scanf 格式化字串 位址表 scanf 函式返...

c語言中gets函式和是scanf函式有什麼區別呢

一 指代不同 1 scanf 是c語言中的一個輸入函式。2 gets 從標準輸入裝置讀字串函式。二 讀取方式不同 1 scanf 是格式輸入函式,即按使用者指定的格式從鍵盤上把資料輸入到指定的變數之中。2 gets 可以無限讀取,不會判斷上限,以回車結束讀取,所以程式設計師應該確保buffer的空間...

C語言問題,關於Scanf的,空格問題

scanf c answer 與 scanf c answer 後者只是在 前多了個空格,似乎沒有什麼區別,但使用起來區別是很大的。scanf 作單字元輸入時規定只接收乙個字元,但它卻把回車符也作為字元對待的。這就造成程式中只有乙個輸入字元的scanf 語句時,問題還不大,但如果後面還跟著第二個sc...