这是我的代码:
printf(" What is your guess:");
printf(" (hint:don't guess %d)",half);
scanf("%d", &guess);
输出:
答案 0 :(得分:0)
您无法使用标准C (使用stdio.h
)执行此操作,因此我会重新安排您的代码,如下所示:
printf("What is your guess (hint: don't guess %d): ", half);
scanf("%d", &guess);
答案 1 :(得分:0)
只需使用wherex()
和wherey()
即可获取光标的当前x和y坐标。然后使用gotoxy
wherex()
和wherey()
gotoxy()
gotoxy()
您可以在conio.h
中找到这些功能。它仅在Windows下可用。
http://code-reference.com/c/conio.h/gotoxy
http://code-reference.com/c/conio.h/wherex
http://code-reference.com/c/conio.h/wherey
答案 2 :(得分:0)
尝试退格
printf("What is your guess: (hint: don't guess %d)", half);
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
fflush(stdout);
if (scanf("%d", &guess) != 1) /* error */;
您需要调整打印的退格数量。并考虑half
的大小。
答案 3 :(得分:0)
我首先要将第二个输出写入字符串:
size_t size = strlen(" (hint:don't guess )") + 6 // for numbers with < 6 digits
char *temp = malloc(size); // Alocate enough space
snprintf(temp, size, " (hint:don't guess %d)", YOUR_NUMBER); // Write to string
然后,获取最终字符串的长度:
size_t len = strlen(temp);
现在,将字符串写入终端:
print("%s", temp);
在此之后,您需要将光标移回。 '\b'
将光标向后移动一个字符。所以你需要一个小循环:
for(int i = 0; i < len; i++)
putchar('\b');
你的光标就在你开始的地方。
注意:如果您需要返回到行的开头,则可以使用'\r'
。