【发布时间】:2014-03-31 18:46:31
【问题描述】:
我的任务是创建数组,为此我需要输入大小,但我必须确保输入不是负数、字母或符号。我创建了函数来做到这一点,但我的 if 不能正常工作。如果我输入负数或字符,它仍然会使用它。
这是我使用的函数:
void getsize(int* size){
printf("Enter the size of array\n");
if ((scanf("%d", size) == 1) && (getchar() == '\n') && (size > 0)){
printf("Size: %d entered\n", *size);
} else {
printf("wrong input\n");
while(getchar() != '\n');
}
}
getsize(&size);
【问题讨论】:
-
"%d"无论如何都不会获得非数字字符...