2017-04-03 129 views
0

一端的輸入的scanf當用戶按下例如我要求用戶輸入的兩個輸入輸入

int x,y; 
scanf("%d %d",&x,&y); 

我需要的情況下,如果用戶只輸入一個輸入,然後按回車鍵(\ n)的 該程序必須說缺少輸入號碼

有什麼建議嗎?

+3

使用'fgets()'而不是'scanf()'。 – chux

+0

你不能單獨使用'scanf'來做這件事。 (事實證明,有很多事情你不能用'scanf'來做。)你想做什麼 - 這是一個更多的工作,但是在無限更好的靈活性和錯誤捕捉能力方面付出*很大的努力 - 使用'fscanf'等將一行文本*讀爲*一行文本,然後檢查該行或將其分解爲字段或以某種方式解析它。有時候,'sscanf'是解析線條的一種體面的方式。另見http://stackoverflow.com/questions/36921431/c-fscanf-input-validation。 –

回答

0

你不能用你現有的代碼來做到這一點,其中一個scanf語句被用來提供兩個值。可以嘗試這樣的事情:

void main(){ 
    int a;char b; 
    printf("Enter two values\n"); 
    scanf("%d",&a); 
    top: 
    scanf("%c",&b); 
    if(b=='\n'){ 
     printf("Missing value\n"); 
     goto top; 
    } 
    printf("I got all values"); 
}