c++中文件操作,获取文件内容时出错
[code=c]ifstream get_fi("D:\\20130701_2013070302.txt", ios::binary);
while (EOF != get_fi.peek())
{
get_fi.get(APPID, 127, ','); //从文件从获取字符到字符数组APPID中,当遇到','时或读取了127个字符时终止
get_fi.seekg(1, ios::cur);
get_fi.get(AppVersion, 127, ',');
get_fi.get(ProductFunction, 127, ',');
get_fi.get(OptionTime, 127, ',');
get_fi.get(IP, 127, ',');
get_fi.get(OptionTimes, 127, ',');
get_fi.get(SessionId, 127, ',');
get_fi.get(FunctionLabel, 127, ',');[/code]文本内容为:
109738,3.3.2,200009,2013-7-1 20:49:45,3026778682,1,71495585,连接设备结束
109739,3.3.2,200009,2013-7-1 20:49:45,3026778682,1,71495585,连接成功
然后运行时发现获取的都是10978这个数据,而且只能获取第一行的数据,就直接结束了。这是怎么回事??
求大神!! C++ 文件操作 ifstream? get
[解决办法]
1、应该用文本方式打开,而不是二进制方式;
2、应该一次读取一行;
3、然后每行以','进行分割。
[解决办法]
fgets这个函数可以获取文本中每行的字符串,你可以先获得每行的,然后在每行中处理
[解决办法]
用文本方式打开
用getline()函数而不是get(),get()不丢弃分隔字符,','会留在缓冲区,后果是下次get()不正确
[解决办法]
fgetc() ; 获取行信息
strtok(); 通过“,”分割字符串
两个函数的参数,已经原因楼主可以查查资料