这是我在C ++中的第一个项目。我之前使用过C语言,文件I / O似乎有点不同。
项目要求用户输入用于保存输出文件的名称。
我知道我应该使用ofstream,它应该是这样的:
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
我加粗了引起混淆的片段
如何根据用户输入的字符串命名文件?
*注意,C类型的字符串,所以是一个字符数组
#include&lt;字符串&gt;不允许
答案 0 :(得分:1)
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string path;
string name;
string h_path;
string text;
void create() {
ofstream file(h_path, ios::app);
if (!file.fail()) {
file << text;
file.close();
}
}
int main() {
cout << "please enter path(c:\\folder\): ";
cin >> path;
cin.ignore();
path = path + "/";
cout << "please enter the name of the file (test.txt): ";
getline(cin, name);
cout << "content of the file: ";
getline(cin, text);
h_path = path + name;
create();
cout << "new file created";
cout << h_path;
}
答案 1 :(得分:1)
由于我的其他答案得到否定投票,这是另一个没有#include <string>
您可以将用户的输入保存在临时char数组中,然后将其保存到字符串变量std::string
。
包含必要的内容:
#include <iostream>
#include <fstream>
将用户的输入保存到char数组中:
char input[260];
cin >> input;
然后将其保存在字符串变量中,只需执行以下操作:
string filename = input;
要打开文件流,您需要使用std::ofstream
。请记住,文件是在与项目/应用程序相同的文件夹中创建的。
std::ofstream outfile (filename + "." + "file extension");
正如您已经知道的那样outfile.open();
会打开文件。
使用outfile << "hello";
,您可以写入文件。
要关闭文件,请使用outfile.close();
关闭文件。
这里有一些示例代码:
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
char input[260];
cin >> input;
string filename = input;
ofstream outfile(filename + "." + "txt");
outfile << "hello";
outfile.close();
}
我希望这会有所帮助。
问候。
答案 2 :(得分:-1)
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main()
{
string fileName;
cin >> fileName;
ofstream myfile;
myfile.open(fileName);
myfile << "Writing this to a file.\n";
myfile.close();
}