如何解决无法在 for 循环内打印出来
#include <iostream>
#include <fstream>
using namespace std;
int main() {
string input;
fstream nameFile;
nameFile.open("data.txt",ios::in);
if (nameFile) {
getline(nameFile,input);
while (nameFile) {
cout << input << endl;
getline(nameFile,input);
}
} else {
cout << " ERROR : cannot open file.\n ";
}
int largest_1{};
int largest_2{};
int largest_3{};
for (int a{},b{},c{},d{},e{}; nameFile >> a >> b >> c >> d >> e;) {
if (c > largest_1)
largest_1 = c;
if (d > largest_2)
largest_2 = d;
else if (e > largest_3)
largest_3 = e;
std::cout << "The largest value 1 is " << largest_1 << '\n';
std::cout << "The largest value 2 is " << largest_2 << '\n';
std::cout << "The largest value 3 is " << largest_3 << '\n';
}
}
但是,在我运行此代码后,它没有在 for 循环内打印。有人知道如何解决这个问题吗?
解决方法
当您通读文件时,您正在更改它的读取指针。在第一次循环之后,读取指针一直移动到 EOF,因此当您再次尝试读取时,不会因为它位于文件末尾。在第二个循环之前你想做的是去namefile.seekg(0);
这会将读取指针重置为开头,并允许您再次读取文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。