首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C语言中scanf格式的一个小疑点

2012-08-10 
C语言中scanf格式的一个小问题有下列一段程序:[color#FF0000]C/C++ codeint x,ychar c1,c2scanf(%d%c%

C语言中scanf格式的一个小问题
有下列一段程序:
[color=#FF0000]

C/C++ code
int x,y;char c1,c2;scanf("%d%c%d%c",&x,&c1,&y,&c2);printf("%d%c%d%c \n",x,c1,y,c2);
[/color]

要想输出为123 x 456 y,正确的输入方式是什么?

本人在VC2008和C-free5.0下测试了一下都没有成功,如果加空格的话,总是乱码。

给出的答案是123x 456y。但是我在VC2008和C-free5.0下键入123x 456y(Enter)后,
得到的结果是123x456y,而与题目要求的123 x 456 y不一致,想和大家讨论一下,到底是什么原因?
会不会是编译器的原因呢?

[解决办法]
[code=C/C++][/code]
#include <stdio.h>

void main(void)
{
int x,y;
char c1,c2;
scanf("%d%s%d%s",&x,&c1,&y,&c2);
printf("%d %c %d %c \n", x, c1, y, c2);
}
[解决办法]
[b][/b][code=C/C++][/code]
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{int x,y;
 char c1,c2;
 scanf("%d%c%d%c",&x,&c1,&y,&c2);
 printf("%d%c %d%c\n",x,c1,y,c2);
return 0;
}
VS2010里的代码!输入123x456y
输出123x 456y
[解决办法]
楼主代码需要更改一下、printf("%d%c %d%c\n",x,c1,y,c2);
printf函数中双引号中除格式控制符之外的数据都要输出,
或者:printf("%d%c\t%d%c\n"x,c1,y,c2);
\t制表符 八行!
运行后输:123x456y(回车)
就OK、
注:本人新手、楼主勿喷!代码是在VS2010中实现后才写到这的!
[解决办法]
scanf("%d%c%d%c",&x,&c1,&y,&c2);


123456789 你如何区分个输入
[解决办法]
我想应该是你的输出有问题,在输出时没有添加空格。
[解决办法]
你一个%d对应一个整形的输出,既然你想要有空格隔开,直接把printf("%d%c%d%c \n",x,c1,y,c2)改成printf("%d %c %d %c \n",x,c1,y,c2)不就好了

[解决办法]
printf("%d %c %d %c",a,c,b,d);就ok了
[解决办法]
lz小的斗胆说句,在输入完数字后再输入字符是不可以加空格的而输入完字符再输入数字需要加空格。。。。所以正确的输入为
123x 456y 楼主可以看看C语言初级课本。。。。

热点排行