gpt4 book ai didi

更改 stdout 的文件位置指示符

转载 作者:太空狗 更新时间:2023-10-29 16:13:21 24 4
gpt4 key购买 nike

我试图弄乱文件位置指示器并覆盖屏幕上已有的内容。

    #include <stdio.h>

int main ()
{
fpos_t position;


fgetpos (stdout, &position);
fputs ("That is a sample",stdout);
fsetpos (stdout, &position);
fputs ("This",stdout);

return 0;
}

我想要这个“This is a sample”。我从 cplusplus.com 得到了类似的代码唯一的区别是它们使用实际文件而不是标准输出。 stdout 是否有一些我不知道的特殊异常(exception)。

我以为我可以像对待文件一样对待标准输出。出于某种原因,我将此作为输出: That is a sampleThisPress any key to continue 。 . . 我真的很想知道为什么。 This guy甚至在 cplusplus.com 上问过同样的问题,但没有任何回应

我知道 fseek 和 lseek,如果它们有效,我可能会使用它们,但无论如何我想知道为什么上述方法不起作用。如果您有更好的方法,我愿意接受建议,但我仍然想知道我在这里做错了什么。提前谢谢你。

最佳答案

如果您想要实现的是修改屏幕输出,您可能需要查看 ncurses(或类似的东西)。

或者,如果您只是想要这样的东西(显示“第 2 部分”占目前已完成的“总”工作量的进度条):

....
cout << part * 100 / total << "% done\r"; cout.flush();
....

\r 是“回车”,会将光标移回行首,而不向下移动。

关于更改 stdout 的文件位置指示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com