【问题标题】:C++ - Read and print whole fileC++ - 读取和打印整个文件
【发布时间】:2014-04-30 11:38:05
【问题描述】:

就像在主题中一样,我想从标准输入读取并打印到标准输出整个文件,它们之间没有区别。

program < data.txt > data.out
diff data.txt data.out // <- the same

文件包含 Unicode 字母。

我已经编写了以下代码:

char s[100000];

int main()
{
    setmode(1, _O_BINARY);

    char *n;

    do {
        n = gets(s);
        s[strlen(s)-1] = '\n';
        printf("%s", s);
    }
    while(n);

    return 0;
}

但输入和输出略有不同(输入:76 465KB,输出:76 498KB)

提前致谢。

编辑:

现在,只有 2KB 的差异。

编辑:

没关系。

【问题讨论】:

  • 我的 2 美分:它是 C,而不是 C++ :)
  • 我使用 printf,因为它更快:)
  • 是的,你也使用char s[100000]setmodechar*getsstrlen,它们不是C++

标签: c++ unicode printf scanf


【解决方案1】:

如果输入文件有 \n 行结尾,就会发生这种情况。输出文件在 Windows 上将有 \r\n 行结尾。这可以解释差异。

如果不想输出\rs,可以关注this answer

【讨论】:

  • 首先确定确实有区别。
猜你喜欢
  • 2015-06-21
  • 2017-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多