C ++ - 读取并打印整个文件

时间:2014-04-30 11:38:06

标签: c++ unicode printf scanf

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

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的差异。

修改

没关系。

1 个答案:

答案 0 :(得分:3)

如果输入文件具有\ n行结尾,则可能发生这种情况。输出文件在Windows上具有\ r \ n行结尾。这可以解释其中的差异。

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