请问这段程序中的Age=atoi(tmp.c_str())是什么意思?

bool Input(istream & infile)
{
string tmp;
infile>>Id>>Name;
infile>>tmp;
Age=atoi(tmp.c_str());
infile>>Class>>PhoneNum>>ShortNum;
return !infile.eof();
}

还有函数eof()是什么意思??

1. atoi 函数是把字符串的数字转为数字型的数值,例如:int n = atoi("1234");那么结果是n的数值就为1234。tmp 是 string 字符串类型的对象,那么string的函数c_str()是获取这个字符串的首指针,例如: string str = "1234";那么 char* pStr = str.c_str(); 中 pStr就是指向"1234"字串的首地址 '1' 。那么楼主问的 Age=atoi(tmp.c_str());就是把 tmp 这个字串(应该是数字字串来的),转换为数值型并赋值给 Age。 2. infile 是 istream 类型的对象,那么里面有个函数 eof(), 这个函数返回布尔类型,如果流对象里面的当前指针(有点类似读取文件数据)已经移动到流结尾(表示之后再没有数据可读了),那么eof()返回TRUE;如果流当前指针不是移动到流结尾(表示之后还有数据可读)那么eof()返回FALSE。注意当程序从流中读取数据时,流里面的当前指针会相应移动N个你读取的长度。infile.eof() 就是获取流当前指针是否到结尾(可以用来判断是否还有数据可读)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-24
atoi是讲字符串转化为整型数c_str是返回一个c风格的字符串atoi接受一个c风格的字符串,返回一个int型数据 eof函数是输入流的判断是否到达文件结尾的函数,返回值表示是否到达文件结尾
相似回答