我试图通过获取用户输入来打开一个文本文件。
system(topicName.c_str());
Run Code Online (Sandbox Code Playgroud)
在 topicName 是用户输入的情况下不起作用。
即使作为用户,我输入了正确的文件名,它也没有打开相应的文件 (.txt)
cout << "Intro To C " <<endl;
cout << "Intro To C++" <<endl;
cout << "Intro To Java " <<endl;
cout << "\t\tWhich Topic You Want to edit: ";
cin.ignore(1000, '\n');
getline(cin, topicName);
system(topicName.c_str());
Run Code Online (Sandbox Code Playgroud)
假设您在运行程序的目录中有以下文件:
然后,以下代码将为您的工作服务:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main() {
cout << "Intro To C" << endl;
cout << "Intro To C++" << endl;
cout << "Intro To Java" << endl;
string topicName;
cout << "\t\tWhich Topic You Want to edit: ";
getline(cin, topicName);
topicName = "notepad \"" + topicName + "\"";
system(topicName.c_str());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
然后在运行时,我们得到以下输出:
Intro To C
Intro To C++
Intro To Java
Which Topic You Want to edit: Intro To Java
Run Code Online (Sandbox Code Playgroud)
输入此文件后,如果您在 Windows 系统中运行该文件,则该文件将在记事本中打开。如果您使用不同的操作系统,请相应地更改您的程序。