c语言多种常量的输入

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:57:27
#include<stdio.h>
main()
{
int i;
char c;
float x;
scanf("%d,%c,%f",&i,&c,&x);
printf("%d,%c,%f\n",i,c,x);
}
我输入1,a,3.14;得出正确的结果,那么我输入1,ad,3.14得不出正确的结果
#include<stdio.h>
main()
{
int i;
char cc;
float x;
scanf("%d,%c,%f",&i,&cc,&x);
printf("%d,%c,%f\n",i,cc,x);
} 还是不行,如果要1,ad,3.14有正确的结果,该怎么办

字符常量是单个字符的ASCII值。
ad 是字符串, 所以用 %s 格式输入输出。
用空白做分隔符。

nt i;
char c[5];
float x;
scanf("%d %s %f",&i,&c,&x);
printf("%d %s %f\n",i,c,x);

输入 1 ad 3.14
输出 1 ad 3.140000

ad为两个字符,而你只定义了一个。
这样试试;
#include<stdio.h>
main()
{
int i;
char c;
float x;
scanf("%d,%c%c,%f",&i,&c,&c,&x);
printf("%d,%c%c,%f\n",i,c,c,x);
}

或者
#include<stdio.h>
main()
{
int i;
char c;
float x;
scanf("%d%c%c%f",&i,&c,&c,&x);
printf("%d%c%c%f\n",i,c,c,x);
}
输入:1ad3.14
输出:1ad3.14

%c表示待输入的为单个字符;
%s表示待输入的为多个字符组成的字符串;
a是单个字符;
ab是字符串;
所以你应该修改输入格式为%s;

你定义了一个怎么能是两个呢
字符串就不能用定义单个字符了
输入格式改成%s就可以了