上周日在任务中国上接了一个任务,程序不是很难,主要是他们学校有个程序提交系统,一开始程序把基础的例子都过来,但是一到optional test就挂掉。
后面想到可能是文件中的数字有问题。原题目要求是这样的,从文件中读取出是int的数据。本来用的是fstream的,但是>>遇到不是int就挂掉了,后来就干脆直接写整形解析函数了。不过谁知测试数据比较变态,有n多种情况,我还有一种情况没有考虑全,死活想不出来。
后来了解到fstream还有下面这样的用法:学习了。
int x;
string junk; // to hold any bad data
while(!(in >> x).eof())
{
if(in.fail()) //convert to desire type failed
{
in.clear(); //clear the error state
in >> junk;//skip over junk, convertion to string can't fail
}
else
{
vector_of_ints_in_file.push_back(x);//put a valid number to vector
}
}
这个有个标准I/O库的深入文章,但是不够详细:http://blog.chinaunix.net/u/18517/showart_235738.html