【问题标题】:how to print with a while also using a scanf statement如何使用 scanf 语句打印一段时间
【发布时间】:2020-05-26 13:50:20
【问题描述】:

我有一个奇怪的情况,我创建了一个包含许多 printf 和颜色语句的登录系统

______________________________________________________________
example        border_red(); printf (" $$   ");  
_____________________________________________________________

我在菜单中有多个 printf 语句,在我的代码中间我有一个 scanf 语句来扫描用户名。在只显示菜单顶部的过程中,菜单被切断。

菜单应该是什么样子的

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$            username:type here               $
$                                             $
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

菜单是什么样子的

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$            username: type here 

我需要在您输入用户名时显示整个菜单

问题:我将如何在 scanf 语句后打印字母

char username[50];
printf("#############################");
pritnf("#       username:");
scanf(log, & username);
printf(#                            #');
printf("#############################");

如果不让 scanf 语句切断我的菜单,我将如何处理

对不起,如果这是一个简单的问题,我可能在谷歌上搜索错了,但我已经在这个问题上待了 1 个小时,这是我唯一可以求助的问题。

【问题讨论】:

  • 对您的问题使用适当的标记
  • 菜单在打印其他内容之前等待 scanf。
  • 您需要特定于操作系统的方法来处理它,因为 C++ 没有“控制台”的概念。
  • @DavidRanieri 谢谢你的程序现在可以运行

标签: c


【解决方案1】:

scanfprintf 都假定面向行的输入和输出(想想硬拷贝终端或电传打字机)。它们的设计初衷不是为了打印边框,然后从该边框内的某个位置进行扫描1

如果您想在屏幕上的任意位置设置边框或放置输入字段,则必须超越标准 C 库并使用第三方工具,如 ncurses


  1. 您可以使用一些技巧 - 您可以发送 ANSI 终端转义序列来将光标放在屏幕上的任意位置,但它很难看,而且工作量很大。你最好使用像 ncurses 这样的库。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-23
    • 1970-01-01
    • 2019-05-03
    相关资源
    最近更新 更多