1.C++使用getline,read()函数时要注意,可以看看它的源码。因为设置了很多状态量,所以读取其实是失败的。也是表象很慢的原因。
2.用惯了fread,经验不足,浪费了1.5小时才解决.
错误的用法:
http://bbs.youkuaiyun.com/topics/390286346
正确的用法:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>
using namespace std;
void ReadFileWithGetLine()
{
ifstream ReadFile;
int n=0;
char line[256];
ReadFile.open("C:/workspace/script-test/test_fostream/document.xml",ios::in);
while(!ReadFile.eof())
{
//ReadFile.read(line,256);
ReadFile.getline(line,256);
//注意,getline如果读不到换行符号,会设置fail,
//后果就是eof一直是false,getline也获取不到东西.
//所以下次读取要清除它.
if(ReadFile.fail())
{
ReadFile.clear(ReadFile.rdstate() & ~(ifstre

本文探讨了在C++中使用iostream库的getline和read函数读取文件速度慢的原因,指出这两个函数由于内部状态量的设置可能导致效率降低。作者分享了一个常见的错误用法,并提供了正确读取文件的方法链接,帮助开发者避免浪费时间在类似问题上。
订阅专栏 解锁全文
1933

被折叠的 条评论
为什么被折叠?



