用c ++编写文件的问题

时间:2014-05-27 11:11:23

标签: c++ file

我的代码通过以下语法在文件中写入整数矩阵:

for(int i = 0; i < rows; i++){
    for(int j = 0; j < columns; j++){
        f <<output[i*columns+j]<<' ';
    }
    f<<std::endl;
}

.txt文件中写入的矩阵通常具有较大的尺寸(每列10 ^ 6行)。我必须将这些文件与我已有的其他文件进行比较,以确定它们是否相等。在第一个视图打开这两个文件时,他们在我看来是相同的,但是由于尺寸太大,我无法确定只是快速查看。所以我尝试使用unix命令diff。具有两个文件的命令的结果由矩阵的所有元素组成。在Windows中用notepad ++打开两个文件我注意到一个文件被编码为ANSI而另一个文件被编码为ANSI-as-UTF8。这可能是差异的根源吗?我尝试使用较小尺寸的矩阵,文件中的元素是等于但仍然是diff命令给了我所有的元素。也可能是空格和退货问题?

2 个答案:

答案 0 :(得分:1)

您可以指定diff来忽略空格:

diff -w file1 file2

答案 1 :(得分:0)

的可能性:

  • 您可能正在比较unix和Windows文件。

    如果是这样,请从unix上调用windows文件中的 dos2unix 命令, 然后再次重做你的差异操作。

  • 你最后错过了一些空白行,但请确保不是这样。 diff可以忽略这些差异(diff -w)

您还可以在Notepad ++中更改当前的编码(在其中一个菜单中,取决于版本)