c 转义符

来源:百度知道 编辑:UC知道 时间:2024/07/05 04:57:45
当我用键盘输入一SCANF值后我,我想在同一行输入另一SCANF值有什么办法?求各位高手请教!先谢谢了!
做个比方:
printf("%d分钟=_____小时_____分钟",a);
scanf( "%d", &hour );
scanf( "%d", &minute);
我想:当输入小时后,光标跳到分钟处,继续输入?多谢大家指点,望再帮帮忙。
先谢谢9981对我问题的光注!!
当我用\d移到小时前的空白处,输完小时后,无论用空格键还是用TAB来移动小时两个字都会被去掉,不能形成如:2 小时30 分钟的显示结果
虽然没有结果,为表对9981对我问题的关注,就采纳他的!并再次感谢!!!

在scanf括号内的字符串里面多加入占位符咯
像这样scanf( "%d %d %d ...", &a, &b, &c, ... )
直到你想输入的结束了为止

你的问题能不能具体一点

对啊,光标到了那儿你就继续输入啊。注意,如果你在输入了第一个数之后按了回车,你还想再让光标回到上一行,这想法就不对了~~~

scanf是以space(包括换行符、空格、tab)来界定需要获取的输入值的个数的,而且像
scanf( "%d%d", &a, &b );
这样的语句,你在输入了第一个数之后,随你输入多少个上面提到的space都被忽略,直到你输入的不再是space为止。而且你要注意scanf是不会检测你的输入与占位符的类型是否匹配的,比如上面的语句,你在输入第二个值的时候非要想耍编译器一下输一段字符串进去,它也会耍你,等你需要第二个变量里面的值的时候,它就给你一个垃圾值

楼主,很抱歉,我实际操作了一下你提到的,确实有哪个问题,用'\b'回去之后,再输入确实等于从回到的那个位置重新输入,会把后面的东西重新覆盖掉。不过我也不知道怎么解决这个问题,你这个问题可能涉及到GUI(图形用户界面的设计,因为我知道你的本意是希望你的程序与用户之间的交互更人性化一点,不然直接在下面让用户一次性地输入就可以了),你不妨参考一下这方面的问题。抱歉,之前因为没有解决,所以一直没给答复,还望见谅。

在C中输入输出流中一般读采用缓冲技术,如果
int a, b;
scanf("%d %b", &a, &b);

int a, b;
scanf("%d", &a);
scanf("%d", &b);
意义一样。输入数据时可以是:
123 234 <按回车>
或:
123 按回车
234 按回车
这两种输入对于上面的两个问题也是一样

void main()
{
int a, b;