2014-10-29 57 views
0

我要讀3串用空格分隔和2個整數用空格隔開,以及和它們保存到一個結構無法讀取字符串和int在一排的scanf

#define n 5; 
    struct person 
    { 
     char last_name[20]; 
     char sec_last_name[20]; 
     char name[20]; 
     int num; 
     int kw; 
    }client[n]; 

我試着讀它像這樣

for(i=0;i<n;i++) 
{  
    scanf("%s %s %s %d %d",client[i].last_name,client[i].sec_last_name,client[i].name,client[i].num,client[i].kw); 
} 

因爲我有一排讀它,但是當我運行它,它的數據的第一行中鍵入並按下回車鍵,我的代碼玩弄問題後停止後與讀做整數,但我似乎無法解決它。

+1

更改爲'&client [i] .num,&client [i] .kw' – BLUEPIXY 2014-10-29 00:50:54

回答

0

scanf語句有語法錯誤。應該在整數之前使用&

scanf("%s %s %s %d %d",client[i].last_name,client[i].sec_last_name,client[i].name,&client[i].num,&client[i].kw); 

一件事是,

#define n 5 /*;*/ 

;不宜使用。

實施例:

如果;被使用,那麼這將是取代客戶端[5];在結構變量聲明中。然後它會發出編譯錯誤。