我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]
Posted
技术标签:
【中文标题】我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]【英文标题】:My file is not working and reading the context from the file in C++ [closed] 【发布时间】:2018-10-05 18:42:22 【问题描述】:我试图打开某个文件并读取内容以将其放入一个名为 letters 的字符串中,但每次输入文件名时都会出现错误找不到打开文件。
void createTree()
BTS tree;
string filename;
string letters;
ifstream file;
int input = 0;
cout<<"Enter the file name: "; // ask the user to input the file name
cin >>filename; //input the user input into filename
file.open(filename.c_str());
if(file)
cout<<"File is open";
while(!file.eof())
cout<< "In the while loop"<<endl;
getline(file, letters);
tree.insertWord(letters);
else
cout<<"Error can't open the file"<<endl;
tree.printTree();
file.close();
【问题讨论】:
发布您的所有实际代码,而不仅仅是其中的一部分。 你的设置是什么?如果您在 IDE 中工作,可能是可执行文件在与您想象的不同的目录中运行。另外,请注意file.open(filename.c_str());
中的c_str()
是不必要的,ifstream
完全了解std::string
。
【参考方案1】:
稍微更改了getline
调用,看看是否可行:
void createTree()
BTS tree;
string filename;
string letters;
ifstream file;
int input = 0;
cout<<"Enter the file name: "; // ask the user to input the file name
cin >>filename; //input the user input into filename
file.open(filename.c_str());
if(file)
cout<<"File is open" << endl;
ifstream file(filename.c_str());
char chars[100];
while (!file.eof())
file.getline(chars, 100);
tree.insertWord(letters);
letters = chars;
cout << letters << endl;
else
cout<<"Error can't open the file"<<endl;
tree.printTree();
file.close();
【讨论】:
它仍然无法正常工作......我认为问题是我的程序找不到文件可能是因为文件格式或文件的位置。如果我解决了问题,我会通知你们 我想出了什么问题!我只是在输入文件名时忘记输入文件格式(.txt)以上是关于我的文件无法正常工作并从 C++ 文件中读取上下文 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章