我需要从 main 调用一个函数。该函数的副作用是打印一个新的行字符。有什么方法可以删除那个字符吗?
程序如下:
#include "header_file.h"
#include <stdio.h>
int main() {
for (int i=0; i<1e5; i++) {
int A = HEADER_SPACE::func_linebreak();
printf("\b");
}
printf("1234");
return 0;
}
不知道是不是cout << endl;
或 printf("\n");
在func_linebreak()
功能。不知道有没有fflush(stdout);
里面。
可以肯定的是,我总是运行带有输出重定向的二进制/exe 文件:./my_main.out >> outFile.txt
在 Linux 系统中。
This帖子在这里不起作用。
事实证明,最方便删除换行符的方法是从一开始就禁用打印。幸运的是,在我当前的应用程序中,我能够做到这一点。
我的问题已经解决了,但是我不会删除这个帖子,因为可能会出现源代码不可用的情况,而有些人可能仍然想达到同样的目的。
最佳答案
在 Linux 上,您可以 use the dup2()
system call更改 stdout
和 stderr
(即文件描述符 1 和 2)。要丢弃输出,您只需打开 /dev/null
并复制到它即可。
关于c++ - 如何在 C++ 中删除换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49186076/