C-移除并更换打印项目

C-移除并更换打印项目,c,C,我正在写一个用gcc编译的C程序。这个问题与家庭作业有关,但我需要帮助的具体部分不是家庭作业的一部分。有人问了一个类似的问题,但我没有使用Python代码。我已经写了大部分的家庭作业,现在我正在尝试添加一些功能 我尝试做的第一个问题是在屏幕上打印一些文本,然后删除该文本,然后在屏幕上第一个文本原来所在的位置打印新文本 例如,我希望程序打印“Quick brown fox”,然后从屏幕上删除“brown fox”,然后在“brown fox”原来所在的位置打印“green fox”,以便“Quic

我正在写一个用gcc编译的C程序。这个问题与家庭作业有关,但我需要帮助的具体部分不是家庭作业的一部分。有人问了一个类似的问题,但我没有使用Python代码。我已经写了大部分的家庭作业,现在我正在尝试添加一些功能

我尝试做的第一个问题是在屏幕上打印一些文本,然后删除该文本,然后在屏幕上第一个文本原来所在的位置打印新文本

例如,我希望程序打印“Quick brown fox”,然后从屏幕上删除“brown fox”,然后在“brown fox”原来所在的位置打印“green fox”,以便“Quick green fox”最后显示在屏幕上的同一位置

另一个问题是让程序在不使用enter键的情况下响应用户输入

我认为这些特性是可能的,因为我已经在我的系统中运行了一个名为Joe’s Own Editor的程序。在其中,我可以按ctrl-C键,它的功能类似于退出命令,并且会显示一条消息“丢失对此文件的更改y,n,^C?”“如果我然后按“n”,并且只按“n”,则“丢失更改…”消息将从屏幕上删除,光标位置也会调整


谢谢。

如果我收到你的问题,请尝试以下方法:

system("cls");
并在控制台上打印新文本

编辑

另外,要回答第二个问题,请进行while循环并:

use getch() found in conio.h

因此,您无需像在scanf中那样等待按下enter键。

执行这些控制台操作取决于您使用的平台。您可能需要一个库来完成您要做的事情。如果您使用的是Windows,请查看类似于跨平台或旧的DOS conio库的内容。

使用
\b
(退格)字符

printf("Quick brown fox");
int i;
for(i=0; i < 9; i++)
{
    printf("\b");
}
printf("green fox\n");
printf(“快速棕色狐狸”);
int i;
对于(i=0;i<9;i++)
{
printf(“\b”);
}
printf(“绿狐”);

我注意到在第一个
printf()
上放一个
\n
会把输出搞乱。

他正计划在同一个特定文本上写,所以清除屏幕会清除所有内容。这就像屏幕角落里的一个时钟显示器,你可以每隔一秒或一分钟更换一次数字。@jonsca,噢,我现在明白了。因此,在这种情况下,您提供的解决方案是一个很好的解决方案:)它“打乱了输出”,因为该行上不再有任何字符可以退格。请注意,这种方法高度依赖于实现、控制台和终端。现在,这也是一个聪明的解决方案!但这种方法的唯一缺点是光标需要位于要删除的文本的末尾。对于我来说,使用
\n
将“绿狐狸”放在同一行,但一直向右。我猜我的终端通过在当前行中填充空格来插入新行。如果我做更多的退格,它会更多地移到左边。谢谢,这几乎正是我想要的。您知道如何删除或删除字符吗?或者有排队吗?或者通过某种方式,我可以跨行使用与您在一行中提供的功能相同的功能?谢谢。这与我在不同地方找到的许多答案相似。一般来说,我对C语言和编程相当陌生,而且我必须使用的系统不是很灵活。因此,在这一点上,我正在尝试开发解决许多问题的方法。对于您引用的第一个示例,选择的答案可能有效,但如果您正在谈论编写类似于您描述的文本编辑器的内容,则退格将不会很愉快。我不确定这些库本身是如何做到这一点的,但您可以查看pdcurses的源代码来找到答案。祝你好运!