我是这里的新手!虽然这段代码完成输出大部分文件,但在它结束之前就已中止,出了什么问题? (2VI3是坐标的巨大数据文件)。
有人可以推荐更好的编写此代码的方法吗?
Load
答案 0 :(得分:1)
我发现代码至少存在三个问题:
1
while (!iFile.eof())
这种阅读文件的方法is always wrong。
2
分配了2000个字符串的数组。没有明确检查从输入文件读取的实际行数。据说该文件非常大。文件中很可能有超过2000行,这将导致堆损坏和未定义的行为。
3
对代码逻辑的更全面的回顾揭示了这样一个事实:首先将整个文件读入内存缓冲区是完全没有必要的!完全一行读取输入文件,然后将相应的输出行写入输出文件,并简单地跟踪当前读取的行数就足够了。整个array
可以完全消除。这不是必需的。