C++ 我想在写完东西后在控制台中有第一行。。我怎样才能得到它?
在编程过程中,我只想在console中的第一行显示,例如: 第一步:(在控制台结果中) 确切地说,我想要的是在第一步之后,我不能回到第一排 我只想写“b”,但我知道我不能回到第一行C++ 我想在写完东西后在控制台中有第一行。。我怎样才能得到它?,c++,C++,在编程过程中,我只想在console中的第一行显示,例如: 第一步:(在控制台结果中) 确切地说,我想要的是在第一步之后,我不能回到第一排 我只想写“b”,但我知道我不能回到第一行 那我该怎么办呢?以后不能修改控制台行。为了给人留下这样的印象,您可以清除控制台,然后重写整个输出。如果您的终端支持,您可以使用。 例如,您可以尝试以下代码: int main() { for (int i = 0; i < 5; i++) { cout << 'a' <
那我该怎么办呢?以后不能修改控制台行。为了给人留下这样的印象,您可以清除控制台,然后重写整个输出。如果您的终端支持,您可以使用。 例如,您可以尝试以下代码:
int main() {
for (int i = 0; i < 5; i++) {
cout << 'a' << endl;
}
cout << '\033' << "[5A"; // move the cursor 5 cells up
cout << '\033' << "[1C"; // 1 cells forward
for (int i = 0; i < 5; i++) {
cout << 'b';
cout << '\033' << "[1D"; // 1 cells down
cout << '\033' << "[1B"; // 1 cells back
}
return 0;
}
intmain(){
对于(int i=0;i<5;i++){
为什么不简单地答案是否需要可移植?因为这不是我的意图…也许我会找到另一种方法来解决这个问题谢谢^^cout
不是控制台。它是一个标准输出,严格地说是线性的。你可以在各种终端实现上获得所需的输出,但这取决于操作系统(和终端实现)。您的环境是什么?如果控制台输出是行打印机,但大多数现代控制台都提供了一种写入屏幕任何一行的方式,则为True。@CharlesBailey ok--但例如bashes echo或println(c/java等)怎么可能呢修改写入位置?如果您现在选择了确切的终端,您可以打印转义序列(例如,对于像我这样的vt320,在bash中通过printf'\033[H'
)或者您可以使用一个库,它从ncurses中提取特定类型的终端,例如tput
,因此在bash中,您可以编写tput home
,并将光标位置移动到home位置。好的,但一般来说,您不能这样做……对我来说,它是一个流。如果指定控制台是VT100兼容terminal.yip但一般来说它不会工作..我也可以说
ab
ab
ab
ab
ab
int main() {
for (int i = 0; i < 5; i++) {
cout << 'a' << endl;
}
cout << '\033' << "[5A"; // move the cursor 5 cells up
cout << '\033' << "[1C"; // 1 cells forward
for (int i = 0; i < 5; i++) {
cout << 'b';
cout << '\033' << "[1D"; // 1 cells down
cout << '\033' << "[1B"; // 1 cells back
}
return 0;
}