Ifstream 正在打开文件,但不输出文件内的行
Ifstream is opening the file, but doesn't output the lines inside the file
我是 C++ 的新手,我试图使用 ifstream 打开一个“.txt”文件。我使用的文件名为“ola.txt”,它实际上只包含两行没有标点符号的文本,只是纯文本和简单文本。我写的代码是这样的
#include <iostream>
#include <vector>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
int x;
string line;
vector<int> vect;
ifstream inFile("C:\Users\ruial\Desktop\ola.txt");
inFile.open("C:\Users\ruial\Desktop\ola.txt");
if (inFile.is_open()) {
while (getline(inFile, line))
{
cout << line << '\n';
}
inFile.close();
}
else {
cout << "Unable to open file";
exit(1); // terminate with error
}
return 0;
}
我写的文件的路径是正确的,所以文件打开了,但是当程序运行时它没有计算出我在 txt 文件上写的行到 cmd,我不知道这是不是有点重要,但我在 visual studio 2019 年编码。
我似乎无法在互联网上的任何地方找到这个问题的答案,老实说,我认为我做得对,任何帮助将不胜感激,提前致谢。
您正在尝试打开 inFile
两次。第一次在 inFile
构建期间 ifstream inFile("C:\Users\ruial\Desktop\ola.txt")
,第二次尝试用 inFile.open("C:\Users\ruial\Desktop\ola.txt")
再次打开它时,它 已经打开 ,这是错误的,并将流标记为不再有效。
3 个可能的修复:
- 删除
inFile.open("C:\Users\ruial\Desktop\ola.txt")
- 使用默认构造函数,不指定文件名
inFile.close()
在你再次打开它之前(显然,这不是最好的修复)。
我是 C++ 的新手,我试图使用 ifstream 打开一个“.txt”文件。我使用的文件名为“ola.txt”,它实际上只包含两行没有标点符号的文本,只是纯文本和简单文本。我写的代码是这样的
#include <iostream>
#include <vector>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;
int main()
{
int x;
string line;
vector<int> vect;
ifstream inFile("C:\Users\ruial\Desktop\ola.txt");
inFile.open("C:\Users\ruial\Desktop\ola.txt");
if (inFile.is_open()) {
while (getline(inFile, line))
{
cout << line << '\n';
}
inFile.close();
}
else {
cout << "Unable to open file";
exit(1); // terminate with error
}
return 0;
}
我写的文件的路径是正确的,所以文件打开了,但是当程序运行时它没有计算出我在 txt 文件上写的行到 cmd,我不知道这是不是有点重要,但我在 visual studio 2019 年编码。 我似乎无法在互联网上的任何地方找到这个问题的答案,老实说,我认为我做得对,任何帮助将不胜感激,提前致谢。
您正在尝试打开 inFile
两次。第一次在 inFile
构建期间 ifstream inFile("C:\Users\ruial\Desktop\ola.txt")
,第二次尝试用 inFile.open("C:\Users\ruial\Desktop\ola.txt")
再次打开它时,它 已经打开 ,这是错误的,并将流标记为不再有效。
3 个可能的修复:
- 删除
inFile.open("C:\Users\ruial\Desktop\ola.txt")
- 使用默认构造函数,不指定文件名
inFile.close()
在你再次打开它之前(显然,这不是最好的修复)。