我希望用户输入文件名,如果文件存在,则打印出文件的所有内容。
此时,未注释的代码会获取用户输入的文件的名称,例如。 example.txt并打印出文件的大部分(不是最后一个单词?)。我试图通过使用字符串(注释代码是尝试)来实现它,但显然它是不正确的。
我还想知道我是否可以自动将.txt添加到用户输入的末尾,以便控制台可以询问 - “我们应该找到关于”用户输入“数学”的更多信息,它将打开“数学”。 TXT“
以下是我的尝试:
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main() {
char filename[50];
//string getcontent;
ifstream name;
cin.getline(filename, 50);
name.open(filename);
if (!name.is_open()) {
exit(EXIT_FAILURE);
}
char word[50];
name >> word;
while (name.good()) {
cout << word << " ";
name >> word;
}
//if (!name.is_open()) {
//while (! filename).eof())
//{
//getline(name, getcontent)
//cout << getcontent << endl;
//}
//exit(EXIT_FAILURE); //comes from cstdlib
//}
//}
system("pause");
return 0;
}
答案 0 :(得分:0)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <string>
using namespace std;
int main() {
string filename;
string getcontent;
ifstream name;
cin >> filename;
filename.append(".txt"); // add extension.
name.open(filename);
if (!name.is_open()) {
exit(EXIT_FAILURE);
}
while (true)
{
getline(name, getcontent);
if (name.eof()) break;
cout << getcontent << endl;
}
return 0;
}
答案 1 :(得分:0)
我发现了这一点,它为我解决了一个稍微不同的问题,并且我还认为我可以提供帮助。这是在Windows中编码的。 (我是一个初学者,如果我犯了一些明显的错误,请原谅我)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
ifstream fin;
int main()
{
//char filename[50],word[50];
string filename,word;
//cin.getline(filename,50);
getline(cin,filename);
//strcat(filename,".txt");
filename.append(".txt");
fin.open(filename);
if(fin.is_open())
while(fin>>word)
cout<<word<<endl;
else
cout<<"No such file"<<endl;
return 0;
}