Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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
Python 有上线字符吗?(与\n相反)_Python_C++_Terminal_Console - Fatal编程技术网

Python 有上线字符吗?(与\n相反)

Python 有上线字符吗?(与\n相反),python,c++,terminal,console,Python,C++,Terminal,Console,我想在串行控制台中覆盖上面一行中的内容。有没有一个角色可以让我升迁 谢谢。不,不太容易,因此您必须使用类似的工具,特别是如果您希望对光标位置有更多的控制,并以编程方式执行更多操作的话 这里有一个关于Python文档的链接,这篇短文可能也很有趣 我刚刚在您使用Windows的案例中发现了此说明: 没有人为curses模块创建Windows端口。在窗户上 平台,尝试Fredrik Lundh编写的控制台模块。控制台 模块提供光标可寻址文本输出,以及对 鼠标和键盘输入,并可从 我相信C++有库,如果

我想在串行控制台中覆盖上面一行中的内容。有没有一个角色可以让我升迁


谢谢。

不,不太容易,因此您必须使用类似的工具,特别是如果您希望对光标位置有更多的控制,并以编程方式执行更多操作的话

这里有一个关于Python文档的链接,这篇短文可能也很有趣

我刚刚在您使用Windows的案例中发现了此说明:

没有人为curses模块创建Windows端口。在窗户上 平台,尝试Fredrik Lundh编写的控制台模块。控制台 模块提供光标可寻址文本输出,以及对 鼠标和键盘输入,并可从

我相信C++有库,如果你想用C++来连接的话,链接页面上有一个章节。还有一个

很久以前,我使用C语言的curses库非常成功

更新

我错过了在终端/串行上运行此程序的部分,因为ANSI转义序列,特别是对于像您这样的简单任务,将是最简单的,我同意@SvenMarnach解决方案。大多数终端都理解。此用例的相关代码:

  • “\033[F”
    –将光标移动到上一行的开头
  • “\033[A”
    –将光标上移一行
示例(Python):

我可能错了,但是:

#include <windows.h>


void gotoxy ( int column, int line )
{
  COORD coord;
  coord.X = column;
  coord.Y = line;
  SetConsoleCursorPosition(
    GetStdHandle( STD_OUTPUT_HANDLE ),
    coord
    );
}
#包括
void gotoxy(int列,int行)
{
合作社;
坐标X=列;
坐标Y=直线;
设置控制台位置(
GetStdHandle(标准输出句柄),
坐标
);
}
在windows标准控制台中

for i in range(10):  
    print("Loading" + "." * i) 

    doSomeTimeConsumingProcessing()

    sys.stdout.write("\033[F") # Cursor up one lin

在Python中尝试此方法,并用所需的任何例程替换doSomeTimeConsumingProcessing(),希望它有帮助

回车符可以用于转到行的开头,ANSI代码
ESC A
“\033[A”
)可以为您提供一条线索。这在Linux上工作。它可以在Windows上工作,方法是使用
colorama
包启用ANSI代码:

导入时间
导入系统
进口色拉马
colorama.init()
打印(“第1行”)
时间。睡眠(1)
打印(“第2行”)
时间。睡眠(1)
打印(“第3行(无下线)”,end=“”)
sys.stdout.flush()
时间。睡眠(1)
打印(“第3行,续集”)
时间。睡眠(1)
打印(“\033[ALine 3第二部续集”)
时间。睡眠(1)
打印(“\033[A\033[A\033[ALine 1续集”)
时间。睡眠(1)
print()#跳过两行,这样第2行和第3行就不会被下一个控制台提示覆盖
打印()
输出:

>python3 multiline.py
第一行续集
第2行
第三行第二部续集
>

在引擎盖下,colorama可以使用
SetConsoleMode

定义“串行控制台”这是在PC上运行的终端仿真程序吗?如果是这样的话,标准C++中没有什么原因是它支持输出真的是串行控制台的可能性。像电传打字机之类的东西。标准不喜欢像移动光标那样随意地使用它;-我用油灰来监控。com端口。你在什么平台上运行这个?现在我正在使用windows(这就是为什么我使用PuTTY)。但我也在Linux上工作,但还没有在那里测试过。这在PuTTY中不起作用。但谢谢你,我相信我会在其他项目中使用它。@Keegan McCarthy:这在PuTTY中应该起作用,但我不小心错过了一个方括号。请再试一次。我重新阅读了OPs问题,你是对的,ANSI方法将是一个更好的方法oach和Confected here.Hm在我的Konsole bash终端中不起作用。但是,用
end=''
打印我的Python输出行,然后发出
print(“\033[A”)
,但只对一行起作用。你可以使用该包使
\033[A
序列在Windows上起作用。我不同意“不,不是很容易,因为你必须使用像诅咒图书馆这样的东西“。你可以用ANSI转义码来放置光标,它们在Windows和POSIX上都可以工作,而且很简单。@SvenMarnach,好的,这么说。ANSI和curses库一样已经存在很长时间了。我相信curses库提供了更好的编程接口(尽管我使用它已经有一段时间了)并且可以让你查询各种屏幕参数。但是你是说没有必要使用诅咒库吗当然,curses库的功能更为广泛。我肯定会将其用于POSIX操作系统上的任何文本用户界面。不过,OP想要做一些简单的任务(将光标上移一行)在Windows上。如果您可以使用ANSI序列,那么使用库来实现这一点似乎有些过分,在这种情况下,该库在Windows上甚至不存在。@SvenMarnach啊,好的,我明白您的意思,谢谢您的澄清。我认为我的第一句话的后半部分有点限定了我的陈述,但我可以看出它可能不够明确。我确信可以选择最适合他们的解决方案,最好有选择。如果有人想这样做,只需将kwarg end='\r'添加到print函数中,如下所示:
print('load',end='\r')
for i in range(10):  
    print("Loading" + "." * i) 

    doSomeTimeConsumingProcessing()

    sys.stdout.write("\033[F") # Cursor up one lin