gpt4 book ai didi

c++ - Visual C++ Win32 控制台应用程序 printf 在 while 循环中多行输出

转载 作者:行者123 更新时间:2023-11-28 06:57:14 25 4
gpt4 key购买 nike

我正在尝试使用 printf 在我的控制台应用程序中显示多行数据。下面的代码显示这样的数据:

Default Data=00000000 ACP Status Request=00000000 ACP VHF1 Data=00000000

我需要的是:

Default Data=00000000

ACP Status Request=00000000

ACP VHF1 Data=00000000

当我使用\n 时,数据一遍又一遍地填满控制台屏幕。任何人都可以提出解决方案并解释为什么循环很好并且代码可以工作直到我尝试转到下一行。谢谢。

while(!_kbhit())
{
/*Read message records*/
msgdefault.data = BTI429_MsgDataRd(msgdefault.addr,hCore);

STAT_REQ.data = BTI429_MsgDataRd(STAT_REQ.addr,hCore);

VHF1.data = BTI429_MsgDataRd(VHF1.addr,hCore);

/*Display values*/
printf("\r");
printf("Default Data=%08lX ",msgdefault.data);
//printf("\n");
printf("ACP Status Request=%08lX ",STAT_REQ.data);
//printf("\n");
printf("ACP VHF1 Data=%08lX ",VHF1.data);
}

最佳答案

您需要一些函数来跳转到屏幕的开头。

阅读你的文档,可能有像gotoxy(0,0)这样的函数或其他东西。

尝试搜索 System::Console::SetCursorPosition,这可能对您有所帮助。

尝试在打印任何内容之前在循环开始处添加以下代码

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

_COORD p;
p.X = x;
p.Y = y;

SetConsoleCursorPosition(hConsole, p);

但请确保在打印后打印一些空白区域,以便覆盖旧打印的剩余部分。

关于c++ - Visual C++ Win32 控制台应用程序 printf 在 while 循环中多行输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23009763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com