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.