scanf一次給多個變量賦值


本節課程筆記:

一是對多個變量進行賦值,二是對非法輸入的值做正確處理(處理方式了解即可,相關函數知識后期講解),三是美化scanf代碼加入輸出說明。

 1 /*
 2   Name:scanf一次給多個變量賦值 
 3   Copyright:yangbin.org
 4   Author: Yangbin
 5   Date:2014年2月8日 20:57:44 
 6   Description:本課程筆記,一是對多個變量進行賦值,二是對非法輸入的值做正確處理(處理方式了解即可,相關函數知識后期講解),三是美化scanf代碼加入輸出說明。 
 7 */
 8 # include <stdio.h>
 9 # include <stdlib.h>
10 int main(void)
11 {
12     int i,j;
13     
14     printf("請輸入兩個數值,中間以空格分隔(不能包含漢字、符號、字母):");
15     scanf("%d %d", &i, &j); //輸入i和j的一個值 
16     /*scanf("%d\n", &i);  scanf輸入時,切記不能使用\n;
17     非輸入控制符必須原字符輸出,如:
18     scanf("%d, %d", &i, &j) 輸入本句時必須加 逗號;
19     */ 
20        
21     printf("i = %d, j = %d\n", i, j); //輸出 i,j的值 
22   
23     system("pause");
24   return 0;
25 }
26 /*
27 ----------------------
28 該代碼在Dev-C++ 4.9.9.2下編寫
29 ------輸出結果--------
30  請輸入兩個數值,中間以空格分隔(不能包含漢字、符號、字母):2 3
31 i = 2, j = 3
32 --------總結---------
33    使用scanf之前最好先使用printf提示用戶以什么樣的方式來輸入
34   Scanf中盡量不要使用非輸入控制符,尤其是不要用\n
35   應該編寫代碼對用戶的非法輸入做適當的處理【非重點】
36   while ((ch=getchar()) != '\n')
37           continue; 
38 
39 */

 以下內容來自百度百科:

scanf()函數返回成功賦值的數據項數,讀到文件末尾出錯時則返回EOF。
如:
scanf("%d,%d", &a, &b);
如果a和b都被成功讀入,那么scanf的返回值就是2
如果只有a被成功讀入,返回值為1
如果a和b都未被成功讀入,返回值為0
如果遇到錯誤或遇到end of file,返回值為EOF。
且返回值為int型.
例:使用scanf函數輸入數據。
#include<stdio.h>
int main()
{
    int a,b,c;
    printf("輸入 a, b, c\n");
    scanf("%d,%d,%d", &a, &b, &c);
    printf("a = %d b = %d c = %d\n", a, b, c);
    fflush(stdin);
    return 0;
}
注意上面的scanf("%d,%d,%d",&a,&b,&c);中%d,%d,%d之間有逗號,在輸入數據時也要加逗號,如果去掉逗號,輸入時就不用逗號,而用空格,tab鍵或回車鍵將各個數據隔開
&a,&b,&c中的&是地址運算符,&a指a在內存中的地址。scanf的作用是:按照a,b,c的內存地址將a,b,c的值存進去。變量a,b,c的地址是在編譯連續階段分配的。
這里注意:如果scanf中%d是連着寫的如“%d%d%d”,在輸入數據是,數據之間不可以加逗號,只能是空格或tab鍵或者回車鍵——“2 3 4”/“2(按tab)3(按tab)4(按tab)”。若是“%d,%d,%d”,則在輸入數據時需要加“,”——“2,3,4”.  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM