如何在C++中删除新行字符



我需要从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() 系统调用来更改stdoutstderr(即文件描述符 1 和 2(。要丢弃输出,您只需打开/dev/null并复制到该输出即可。

最新更新