是否可以在c中的一个scanf()中获得两个不同数据类型的输入?

时间:2016-07-29 10:36:44

标签: c input scanf

我希望将命令作为输入,如

<char><number><number>

所以可以在c?

中使用一个scanf()函数来获取它
int i,j; 
char c; 
scanf("%c%d%d",&c, &i, &j);

2 个答案:

答案 0 :(得分:0)

我认为这不会起作用,因为编译器会将它视为一起而不是一个字符和两个整数,而是以这种格式获取输入,即使编译器理解您可以将整行作为一个字符串然后解析字符串以提取字符和整数

char a[1000],c; int x,y;
scanf("%s",a);
c = a[0];
x = a[1] - '0';
y = a[2] - '0';

另外,@ BLUEPIXY为您的问题提供了更好的解决方案!

答案 1 :(得分:0)

您可以在1个scanf中获得超过1个输入,如下所示:

char ch, string[100];
int number;

printf("--char--/--number--/--string--");
scanf(" %c%d %s",&ch,&number,&string[0]); // -> be careful about the whitespaces

printf("%c\n",ch);
printf("%d\n",number);
printf("%s\n",string);

您不需要使用空格或\ n来输入您的输入。