2017-04-15 65 views
0

只要「主要」變量只有一個單詞,該程序就會工作。例如,CIS是有效的輸入,但計算機信息系統不是。我該如何解決?如何在scanf字符串中包含空格?

#include<stdio.h> 

int main() 
{ 
char major [51]; 
int classes; 

printf("What is your major? "); 
scanf("%50s", major); 

printf("How many classes are you taking this semester? "); 
scanf("%d", &classes); 

printf("Your major is %s and you are taking %d classes this semester.\n", major, classes); 
} 
+0

重複的問題:http://stackoverflow.com/q/6282198/2777099 –

+0

可能重複[從輸入讀取字符串與空格字符?](http://stackoverflow.com/questions/6282198/reading-string-從輸入與 - 空間字符) –

回答

3

您可以使用%50[^\n]匹配多達50個字符,直到遇到換行符並將它們存儲在major[]中。換行符將留在輸入流中,但%d轉換說明符會自動跳過前導空格字符。

請注意,如果用戶輸入超過50個字符,輸入流中將會有多餘字符丟失,然後調用scanf()來獲取類的數量。

相關問題