我正在使用scanf()从用户那里获取一组int。但是,我希望用户一次性提供所有4个ints而不是4个不同的提示。我知道可以通过以下方式获取一个值:
scanf( "%i", &minx);
但我希望用户能够像这样做某事:
Enter Four Ints: 123 234 345 456
这个能做到吗?
我正在使用scanf()从用户那里获取一组int。但是,我希望用户一次性提供所有4个ints而不是4个不同的提示。我知道可以通过以下方式获取一个值:
scanf( "%i", &minx);
但我希望用户能够像这样做某事:
Enter Four Ints: 123 234 345 456
这个能做到吗?
你可以通过一次调用实现这个目的,就像这样:
scanf( "%i %i %i %i", &minx, &maxx, &miny, &maxy);
0x
开头的int类型数值并将其看作16进制,如果以0
开头则看作8进制,否则按十进制读取。而 "%d" 总是按照十进制进行读取。Open Group的手册与我的相同。 - Chris Lutzint minx, miny, maxx,maxy;
do {
printf("enter four integers: ");
} while (scanf("%d %d %d %d", &minx, &miny, &maxx, &maxy)!=4);
这个循环只是为了演示scanf返回成功读取的字段数(或EOF)。
int a,b,c,d;
if(scanf("%d %d %d %d",&a,&b,&c,&d) == 4) {
//read the 4 integers
} else {
puts("Error. Please supply 4 integers");
}
补充一点,我们也可以使用数组:
int i, array[4];
printf("Enter Four Ints: ");
for(i=0; i<4; i++) {
scanf("%d", &array[i]);
}
int number;
printf("Please enter number : ");
scanf("%d", &number);
对于一行中的多个输入数据 -
int number1, number2;
printf("Please enter numbers one by one : ");
scanf("%d %d", &number1, &number2);
%d %d
是十进制格式。您可以根据数据类型使用适当的格式,并在其中使用空格
&number1, &number2
- 在变量名称之间使用逗号
如果需要更多实际示例,请查看此实用示例 - https://devsenv.com/tutorials/how-to-take-input-and-output-in-c-programming
希望这能帮助某些人。
可以这样做,但用户必须使用空格分隔数字:
#include "stdio.h"
int main()
{
int minx, x, y, z;
printf("Enter four ints: ");
scanf( "%i %i %i %i", &minx, &x, &y, &z);
printf("You wrote: %i %i %i %i", minx, x, y, z);
}
使用scanf()
获取多个值是可行的
int r,m,v,i,e,k;
scanf("%d%d%d%d%d%d",&r,&m,&v,&i,&e,&k);
int a[1000] ;
for(int i = 0 ; i <= 3 , i++)
scanf("%d" , &a[i]) ;