读书人

小弟我想问string的有关问题本人初学

发布时间: 2013-09-06 10:17:17 作者: rapoo

我想问string的问题,本人菜鸟

int _tmain(int argc, _TCHAR* argv[])
{
using namespace std;
ifstream fin;
fin.open("D:\\sudy\\tobuy.txt");
if(fin.is_open()==false)
{
cerr << "Can't open file.Bye\n";
exit(EXIT_FAILURE);
}
string item;
int count=0;
getline(fin,item,':');
while(fin)
{
++count;
cout << count << ": " << item <<endl;
getline(fin,item,':');
}
cout << "Done\n";
fin.close();
cin.get();
cin.get();

return 0;
}

上面的代码我看C++Primer plus上的,就是把文件中的内容读取到string字符串中并打印,他首先
getline(fin,item,':');然后再while循环中又getline(fin,item,':');难道不是从文件中又从头读取了吗?为什么结果不是从头读取,难道保存上次读取的位置了吗?
还有while(fin)怎么回事?fin不是对象吗?又不是函数,怎么会有返回值?
本人刚学,请解答!万分感谢!!
[解决办法]
不要重复发贴了,另外一个贴子已经回复!
[解决办法]
ifstream
应该有个私有指针,每读一次,会记录偏移量,下次读,从偏移量直接读起

读书人网 >C++

热点推荐