我知道C ++,但我正在尝试编写我的第一个C程序,我希望能够从用户那里获得一行输入并将其转换为10个不同的数字。例如,系统会提示用户输入一些数字,最多可输入10个数字:
输入最多10个数字:
> 34412 12455 435234 44 199 4735890 034001 154595
然后我想将它们存储在一个数组中,然后再用它们做。我已经搜索了如何获得输入,但我发现的大部分内容对我来说并不清楚。任何帮助将不胜感激,谢谢!
答案 0 :(得分:2)
如果您确定用户总是要输入由空格/制表符和换行符分隔的整数,而不是超过10个整数,则可以使用这一个班轮来完成这一操作:
int arr[10];
int count = 0;
while(scanf("%d",&(arr[count++])))
;
利用scanf
返回匹配项目数的事实。
答案 1 :(得分:1)
您可以阅读一些有关C函数的内容:
答案 2 :(得分:1)
您可以从用户输入读取行,对其进行标记,然后使用sscanf
直接从令牌中检索数字:
// array big enough to hold 10 numbers:
int numbers[10] = {0};
// read line from users input:
char inputString[200];
fgets(inputString, 200, stdin);
// split input string into tokens:
char *token = strtok(inputString, " ");
// retrieve a number from each token:
int i = 0;
while (token != NULL && i < 10) {
if (sscanf(token, "%d", &numbers[i++]) != 1)
; // TODO: ERROR: number hasn't been retrieved
token = strtok(NULL, " ");
}