流的输入的问题.
std::ifstream in("123.txt");
while(true)
{
std::string _name;
std::string _num;
if(in.eof())
break;
in>>_name>>_num;
std::cout<<_name<<'\n'<<_num<<'\n';
books[_name]=_num;
}
我的问题是:如果文本像下面的样子,可以输入两个对数据.
li 123
zhang 11//文件结束于这里,没有打回车到下一行
如果文本像下面的样子:
li 123
zhang 11
//文件结束于这里,
像这种就会多输入一对数据,但是空数据,为什么?这对空数据哪里来的?
问题点数:20、回复次数:3Top
1 楼windking21(想玩玩WOW 真的那么难吗)回复于 2006-03-08 13:20:59 得分 0
\n 就是换行符啊Top
2 楼ugg(逸学堂(exuetang.net))回复于 2006-03-08 13:27:36 得分 10
回车也是数据\n(ox0d),只是在文件内不显示..Top
3 楼windywater(超级宇宙无敌大白痴)回复于 2006-03-08 13:39:44 得分 10
我以前用ifstream的时候也出现过这样的现象,最后一组数据读完时,如果碰到换行符,还会继续读,通常是0xfdfdfdfd,所以在文件里最后一组数据后最好不要加换行符。Top




