【问题标题】:How to implement gotoxy() using printf()如何使用 printf() 实现 gotoxy()
【发布时间】:2018-03-12 05:15:27
【问题描述】:

谁能告诉我 gotoxy() 是如何使用 printf() 实现的

void gotoxy(int x,int y) 
{ printf("%c[%d;%df",0x1B,y,x); }

printf() 里面写的东西对编译器意味着什么?

【问题讨论】:

标签: c function printf


【解决方案1】:

这个特殊的printf 使用字符然后整数格式来生成ANSI escape sequence(可以通过ESC(又名0x1B)然后[ 识别),然后是光标移动到的坐标。在你的情况下:

Esc[Line;Columnf 光标位置:

将光标移动到指定位置(坐标)。 如果不指定位置,光标将移动到屏幕左上角的起始位置(第 0 行,第 0 列)。

当此序列通过像printf 这样的标准输出(并非所有终端都兼容)发送到有能力的终端时,该命令由终端执行,它不依赖于编译器或编译器库。

【讨论】:

  • 你能告诉我你是怎么知道的吗?来源请
  • 你可以阅读《C Programming : A Modern Approach 2nd Edition》一书,对你有很大帮助。
  • 漂亮的牛仔裤,也许你不记得我了,一个月前你有 30k 的东西,现在是 60k,你很快就会进入 100k 俱乐部,祝你好运。
  • @GauravPant 只是我在函数的意图中识别出 ANSI 转义序列。
  • @SurajJain 是的,我没有,但我写了 2300 多个答案,所以很难记住每个人。感谢您的支持(“很快”可以改为“很快”:))
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-13
相关资源
最近更新 更多