C 从用户获取输入并将其存储在数组中
我对C非常陌生,如果有人能告诉我如何做到这一点,那就太好了: 我正在尝试使用fgets获取用户输入。因此,如果用户输入以下整数: 123445 如何扫描它们并将它们放入整数数组=[1,2,3,4,5] 下面是我现在正在尝试做的:我不断地循环并要求用户输入一个数字,直到用户不输入任何东西。在每次迭代中,我都将用户的输入保存到数组中C 从用户获取输入并将其存储在数组中,c,arrays,input,C,Arrays,Input,我对C非常陌生,如果有人能告诉我如何做到这一点,那就太好了: 我正在尝试使用fgets获取用户输入。因此,如果用户输入以下整数: 123445 如何扫描它们并将它们放入整数数组=[1,2,3,4,5] 下面是我现在正在尝试做的:我不断地循环并要求用户输入一个数字,直到用户不输入任何东西。在每次迭代中,我都将用户的输入保存到数组中 int myArray[200]; char input_str[1024]; fprintf(stdout, "Enter numbers: "); if (fg
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;
}
}
是否有必要将FGET置于环路外?我应该得到的
#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;
}