我正在学习atm数组,我必须像示例中一样,在一个命令中输入它们。问题在于它应该接受任意数量的整数。
输入:1 2 3 4 5 7 8
我不知道该怎么做。我正在使用循环。
您可以先将输入内容读入字符串,然后使用sscanf
函数从该字符串中读取整数来完成此操作。后者将告诉您读取了多少个整数。
这里有个简短的程序,希望能向您展示如何做:
#include <stdio.h>
int main()
{
char inBuffer[100];
printf("\nEnter a list of up to 10 numbers: ");
fgets(inBuffer, sizeof(inBuffer), stdin); // Read in characters into the buffer
int a[10] = {0, }; // Initialize all elements to zero
// Now read in how ever many (up to 10) numbers there are in the buffer...
int n = sscanf(inBuffer, "%d %d %d %d %d %d %d %d %d %d",
&a[0], &a[1], &a[2], &a[3], &a[4], &a[5], &a[6], &a[7], &a[8], &a[9]);
printf("\nYou entered %d numbers!", n);
printf("\nNumbers: %d %d %d %d %d %d %d %d %d %d",
a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
return 0;
}
当然,当最大数量增加时,这种方法非常麻烦!
请随时要求进一步的澄清和/或解释。