字符串变量不会在循环中从getline()获取新值

时间:2019-01-23 06:14:29

标签: c++11

我正在从文件中解析数据,并用字符串,float和int成员变量填充结构数组。我在getline()字符串的第一个字符上使用if语句测试其类型,然后将字符串声明为getline值,或使用stof或stoi将getline()值转换为float / int。该程序将新值传递给float和int循环,但反复将遇到的第一个字符串传递给我的构造函数。对于此问题的任何帮助将不胜感激。

int length=0;
string _username;
float _gpa;
int _age;
string line;
while(into.eof()==false)
{
    getline(into, line, ',');
    if(line.at(0)>'9')
    {
        _username=line;
    }
    if(line.at(1)=='.')
    {
      _gpa=stof(line);
    }
    if(line.at(0)<='9' && line.at(1)!='.' && line.at(0)>='0')
    {
      _age=stoi(line);
      users[1000].addUser(users, _username, _gpa, _age, length);
      length++;
    }
}

如果用户名应为:Mark,Chuck,Sarah,则此代码会将用户名构造为:Mark,Mark,Mark

0 个答案:

没有答案