c++ - 如何将一行中的前两个字符串写入各自的变量,并将该行的其余内容写入其自己的数组?

标签 c++ arrays string

我有一个简单的程序,它应该接受一个输入文件,该文件包含名字和姓氏,然后是各种整数。我希望能够将名称的前两个字符串写入它们自己的变量,并将其余整数写入它们自己的数组。我已经设置了代码,将字符串读入它们自己的变量,但是当我尝试将整数写入它们自己的数组时,我得到了前两个字符串永远交替的无限循环。这是代码。

int main() 
{
    std::string first_name,last_name;

    int scores_tem[20];
    int i=0;

    std::ifstream filen ("input.txt");
    if (filen.is_open())
    {
        while(!filen.eof())
        {
            filen >> first_name >> last_name;
            for(i;i<20;i++)
            {
                filen>>scores_tem[i];
            }
        }
    }
}

最佳答案

int 
main(int argc, char* argv[]) {

std::string last_name, first_name;
std::vector<int> scores;
int tmp;
std::ifstream filen ("input.txt");
while (filen >> first_name >> last_name) {



    scores.clear();  
    for (int i = 0; i < 20; i++)
        {
            filen >> tmp;
            scores.push_back(tmp);
        }                 
    std::cout<< first_name << " " << last_name << std::endl;
  }
}

我就是这样做的。该程序接受一个参数,因此 int main(int argc, char* argv[])。然后我创建了两个字符串,一个用于名称的每个部分,一个 vector 用于 int 类型的分数。我为正在读入的那些创建了一个临时整数位置。

然后我从 input.txt 打开文件流,然后进行 while 循环。 while 循环参数是这样的,当我首先读入名字然后读入第二个名字时,我清除了之前的 vector 数据。然后我创建了一个 for 循环来遍历其余数字 20 次,将读入的下一个整数分配给分数 vector 。

最后,我在执行 while 循环时输出每个人的名字和姓氏。希望这可以帮助别人。

关于c++ - 如何将一行中的前两个字符串写入各自的变量,并将该行的其余内容写入其自己的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25782003/

相关文章:

C++ extern 未解析的符号错误 LNK2001

c++ - 如何在 C++ 中将值与模板和 boost 进行比较?

javascript - 将 ruby​​ 方法移植到 javascript

c++ - 遍历链表

c++ - 与引号连接会导致错误

string - 在 Scala 中修剪字符串

python - 使用 python 正则表达式删除除组合为字符串的数字之外的所有数字

string - 使用 Perl 脚本搜索和删除字符串

c++ - 表达式未计算为 C++ VS 中的常量

javascript - 如何在单个 JS 变量调用中使用多个字符串