scanf返回值是什么
2023-06-05 17:28:58 閱讀(266)
gets和scanf有什么區別?
都是從輸入流中讀取數據,但功能有很大差別: 1 操作類型不同。gets函數僅用于讀入字符串。scanf為格式化輸出函數,可以讀入任意C語言基礎類型的變量值,而不是僅限于字符串(char*)類型。 2 截止字符不同。gets函數固定的以換行符作為結尾,遇到換行符時結束輸入。scanf函數默認以空白函數結尾,同時可以對截止函數進行修改。 3 對截止字符處理不同。gets函數會讀入截止字符\n, 同時將\n自動替換為\0.scanf遇到截止字符時不會繼續讀取,截止字符將存儲于輸入緩沖中。 4 返回值類型不同。gets的返回值為char*型,當讀入成功時會返回輸入的字符串指針地址,出錯時返回NULL。scanf返回值為int型,返回實際成功賦值的變量個數,當遇到文件結尾標識時返回EOF。
scanf返回值為什么是1?
scanf返回值是1是因為輸入了一個數。 需要注意的是,scanf返回值不一定都是1,其返回值等于輸入的數據的個數。 一般我們輸入一個整數,一個浮點數,或者一個字符,甚至一個字符串,返回值都是1,這是因為我們只進行了一次輸入,一次賦值。 如果同一個scanf輸入了n次,返回值就是n,而不再是1。
sscanf返回值為1是什么意思?
sscanf返回值為1表示讀到了一個有效數據,sscanf()的返回為讀有有效數據的個數!例1:charstr[]="124abc";inta=0,b=0;sscanf(str,"%d%d",&a,&b);//想讀入兩個整數,但是串中只有一個數值123,另一個不是數值(abc),這時,讀入的有效數據只有一個a=123,而b沒有讀到有效數據,因此,返回值為1例2:charstr[]="124abc";chara[10],b[10];sscanf(str,"%s%s",a,b) ;//這時會讀到兩個字符串,a="123",b="abc"函數返回值為2
未經允許不得轉載,或轉載時需注明出處