您的位置:首页 > 其它

混合类型数据格式化输入

2015-07-26 11:14 309 查看
题目:

 输入格式:
输入在一行中顺序给出浮点数1、整数、字符、浮点数2,其间以1个空格分隔。

输出格式:
在一行中按照字符、整数、浮点数1、浮点数2的顺序输出,其中浮点数保留小数点后2位。

输入样例:
2.12 88 c 4.7

输出样例:
c 88 2.12 4.70

我写的代码:

```
 #include<stdio.h>

int main()

{

  char a;

  int b;

  float c,d;

  scanf("%f%d%c%f",&c,&b,&a,&d);

  printf("%c %d %.2f %.2f\n",a,b,c,d);

  return 0;

}

```

在scanf()函数里%f%d%c%f之间没有空格,运行后出现这样的结果:
2.12 88 c 4.7    -------->这是输入

  88 2.12 0.00

--------------------------------

Process exited with return value 0

Press any key to continue . . .

如果把scanf()函数改成这样scanf("%f%d%c%f",&c,&b,&a,&d);  _即%f  %d %c %f,

(每个转换字符后面有空格)

则没有问题,编译通过。为什么呢。。。。

刚刚看了一下k&r对%c的说明:
c    字符;char *类型,将接下来的多个输入字符(默认为一个字符)存放到指定位置。该转换规范通常不跳过空白符。如果需要读入下一个非空白符,可以使用%ls。

然而。。。看不太懂,有哪位大神来解释一下~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: