Visual C++Win32控制台应用程序在while循环中的多行上打印输出
Visual C++ Win32 Console application printf output on multiple lines within while loop
我正试图使用printf在控制台应用程序的多行中显示数据。以下代码显示的数据如下:
Default Data=00000000 ACP Status Request=00000000 ACP VHF1 Data=00000000
我需要的是:
Default Data=00000000
ACP Status Request=00000000
ACP VHF1 Data=00000000
当我使用时,数据一次又一次地填充控制台屏幕。有人能提出一个解决方案并解释为什么循环很好,代码也能工作,直到我尝试转到下一行。谢谢
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);
但一定要在打印后打印一些空白,这样旧打印的剩余部分就会被覆盖。
相关文章:
- 数组类 阵列的打印输出
- 我要求用户输入大小和数组,但是当我打印矢量时,它仅显示'0'作为输出
- 程序打印 % 后预期输出
- 为什么Qt Creator的应用程序输出不能从spdlog记录器打印
- 为什么打印 c 样式字符串的'address of index n'会导致子字符串的输出
- 为什么打印"OK"会改变输出?
- 打印输出在主,而不是在函数中
- 该程序没有产生输出,而是卡在一个循环中,几秒钟后消失并打印被杀死?
- 存储和打印字符,但输出不是预期的
- 执行ls命令并打印输出
- 为什么如果我从键盘输入EOF克里昂不要在运行窗口打印程序的输出?
- 将C++输出打印到文本文件
- 如何仅使输出打印一次
- 以未格式化的输出 c++ 打印输出
- 如何将谷歌测试输出打印到文本文件
- 为类打印输出(打印调试信息)的最佳实践是什么?
- 将命令行输出打印到Linux(Ubuntu)的文本文件中
- 输出打印地址而不是3D数组指针中的值
- 将Qt C++输出打印到QML中写入的应用程序屏幕
- 多线程文本输出打印到dos控制台重叠/混乱输出