我需要从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文件:在Linux系统中./my_main.out >> outFile.txt
。
这篇文章在这里不起作用。
事实证明,删除换行符的最方便方法是从头开始禁用打印。幸运的是,在我目前的应用程序中,我能够做到这一点。
我的问题已经解决了,但我不会删除这篇文章,因为可能存在源代码不可用的情况,有些人可能仍然想实现相同的目标。
在 Linux 上,您可以使用 dup2()
系统调用来更改stdout
和stderr
(即文件描述符 1 和 2(。要丢弃输出,您只需打开/dev/null
并复制到该输出即可。