C-是否可以更改打印和扫描顺序?

时间:2014-05-30 15:55:57

标签: printf

printf(" *你的年龄:xxx *) scanf("%d",& age);

有没有办法按照执行方式更改顺序。 xxx是我想要输入年龄的地方,但我希望在提示输入数字之前打印最后的*。目前它要求下一行的号码。

我希望看到的输出如下:

你的年龄:(需要输入)

(注意*在我被提示输入*)之前的字段时已打印*。

有人可以告诉我如何改写这个吗?

很抱歉,如果这令人困惑。

1 个答案:

答案 0 :(得分:0)

有一个非常简单的方法可以解决一个小问题。您可以正常方式使用printf功能。

printf("* What is your age: xxx *");

由于此时光标位于最后一个星号的右侧,您需要将其向左移动5次以将其移至第一个x所在的位置。

如果您使用的是Linux,\033[<N>D可用于将光标向左移动一次。 (@ref http://www.tldp.org/HOWTO/Bash-Prompt-HOWTO/x361.html)。

光标在第一个x后,您可以使用scanf功能提示输入数字。但是用户输入超过3位的可能性并且星号将被清除,这是一个问题。