2017-04-03 122 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"); 
}