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