【问题标题】:Right aligning using printf_P in C在 C 中使用 printf_P 右对齐
【发布时间】:2020-05-30 07:10:20
【问题描述】:

我正在尝试获得以下输出:

Score: 
    0

但我的输出总是像

Score:        0

这是我已经实现的:

move_cursor(30,4);
printf_P(PSTR("Score : %8d\n"), get_score());
move_cursor(37, 8);

我们正在用 Putty 编写乐谱,从 AVR 到连续剧。 我做错了什么?

【问题讨论】:

  • move_cursor 是什么?
  • 您能否解释一下您如何期望Score : %8d 产生带有换行符的输出,并且数字前面只有4 个空格?
  • 为什么不进行两次写入,一次用于“得分”标签,另一次用于得分本身?
  • @M.M move_cursor 与 Putty 程序上的输出以及它在输出屏幕上的显示位置有关。

标签: c printf avr avr-gcc right-align


【解决方案1】:

问:如果你想把“0”放在一个单独的行上……那么你不应该在你的格式语句中放置一个匹配的`\n'吗?

问:如果你想让它在第 6 列右对齐,那么你的格式语句不应该是%6吗?

示例:printf_P(PSTR("Score :\n%6d\n"), get_score());

PS:

您可能知道,“printf_P()”不是标准 C;它是特定于 AVR 的。

【讨论】:

    猜你喜欢
    • 2014-10-26
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 2012-08-24
    相关资源
    最近更新 更多