Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql C:满时暂停页面_Mysql_Window - Fatal编程技术网

Mysql C:满时暂停页面

Mysql C:满时暂停页面,mysql,window,Mysql,Window,我正在用C语言制作一个客户端数据库,但我找不到一种方法,当它列出所有人时,当控制台或窗口已满时,它会暂停打印到屏幕上,并显示一条消息,如“按一个键以显示另一页”,就像vi可以用一次按下的方式显示下一页。。。如果有人知道如何快速了解这一点…您可以尝试计算您的控制台有多少行(在Linux上:从环境中获取$rows变量)。然后,在打印任何内容之前,请尝试清除控制台。您可以使用对系统(“cls”)的调用//Windows或系统(“清除”)//Linux或使用ASCII字符printf(“\033[2J”

我正在用C语言制作一个客户端数据库,但我找不到一种方法,当它列出所有人时,当控制台或窗口已满时,它会暂停打印到屏幕上,并显示一条消息,如“按一个键以显示另一页”,就像vi可以用一次按下的方式显示下一页。。。如果有人知道如何快速了解这一点…

您可以尝试计算您的控制台有多少行(在Linux上:从环境中获取
$rows
变量)。然后,在打印任何内容之前,请尝试清除控制台。您可以使用对
系统(“cls”)的调用//Windows
系统(“清除”)//Linux
或使用ASCII字符
printf(“\033[2J”);
。这样可以确保从第一行开始。 现在,您可以简单地使用如下循环:

for(int x = 0; x < TOTAL_ELEMENTS; x++)
{
    if(x < COLS)
    {
        puts(rows[x]);
    }
    else
    {
        printf("Press [ENTER] to show the next line")
        getchar();
        printf("\033[F\r"); // Go to beginning of previous line to override (Not that portable)
        puts(rows[x]);
    }
}
for(int x=0;x

否则,您可以使用类似于
more
(Windows/Linux)或
most
/
less
(Linux)的寻呼机就像@Eugene在其评论中建议的那样

将其重定向到命令行中的
more
。是的,将其重定向到或多或少类似$yourprg | less的位置。问题非常模糊,甚至不清楚这是否是编程问题。这通常是一个或类似于它的工作。终端的大小可能会改变。这是不够的。如果我如果调用正确,$COLS变量将在大小更改时更新。如果没有,将有ncurses作为替代方案…是的,但您需要倾听信号并相应地更新。这似乎很困难,这就是为什么存在
诅咒
的原因。将ANSI代码扔到
printf
只会让您走得更远。是的ncurses是最好的(也是最便携的)方式谢谢,这正是我想要的。