【发布时间】:2019-09-27 07:11:06
【问题描述】:
我试图使用 Enter 键终止整数数组输入。所以,我想过使用 fgets 和 sscanf() 但每次我只获得第一个值时,我都尝试了几种方法。有人可以在我做错的地方提供帮助。
#include<stdio.h>
int main(){
int inp[100]={0};
int c=0,n;
char str[100]={0};
char *data = str;
while ((NULL != fgets(str, sizeof str, stdin)) && (str[0] != '\n')) {
if (1 != sscanf(str,"%d",&inp[c])) {
puts("Input was not an integer, try again.\n");
continue;
}
printf("\ninp[%d] = %d",c,inp[c]);
c++;
if (c >= 100) break;
}
}
【问题讨论】:
-
无法重现您的问题。你能分享你的输入/输出吗?
-
@kiranBiradar 我添加了有问题的屏幕截图。如果有帮助的话。
-
fgets从流中获取一行,一行需要以换行符结尾以允许后续读取。所以输入一个字符,后跟一个换行符 -
@chux 我试图将该数组中的整数放入一个整数数组中。