我真的很陌生,所以如果有人能告诉我如何做到这一点会很棒: 我正在尝试使用fgets获取用户输入。因此,如果用户输入以下整数: 1 2 3 4 5
我如何扫描它们并将它们放入一个int = [1,2,3,4,5]
的数组中这就是我现在要做的事情:我不断循环并要求用户输入一个数字直到用户没有放任何东西。在每次迭代中,我将用户的输入保存到数组
int myArray[200];
char input_str[1024];
fprintf(stdout, "Enter numbers: ");
if (fgets(input_str, sizeof(input_str), stdin) == 0){
fprintf(stderr, "Error returned from fgets()...\n");
exit(1);
}
sscanf(input_str, "%d", &n);
myArray[i]=n;
//The while loop will continue as long as the string is not null
while( input_str[0]!='\0'){
if (fgets(input_str, sizeof(input_str), stdin) == 0){
break;
}
for (i=1;i<201;i++){
sscanf(input_str, "%d", &n);
myArray[i]=n;
}
}
答案 0 :(得分:1)
#include <stdio.h>
int main(void){
int myArray[200];
char input_str[1024];
int i, n = 0;
size_t full = sizeof(myArray)/sizeof(*myArray);
fprintf(stdout, "Enter numbers: ");
while(fgets(input_str, sizeof(input_str), stdin) != NULL){
char *p = input_str;
int v, len;
if(*input_str == '\n' || n == full)
break;//input end if blank line
while(1==sscanf(p, "%d%n", &v, &len)){
myArray[n++] = v;
p += len;
if(n == full)
break;
}
}
//check print
for (i=0;i<n;i++)
printf("%d ", myArray[i]);
return 0;
}