我正在尝试用c ++制作一个简单的文本编辑器,但我遇到了一个问题! 当用户制作新文件时,我不知道如何获取他们的输入并将其作为.txt文件。
有问题的代码是
ofstream newFile(userInput);
它现在生成一个名为“userInput”的文件,但我没有制作.txt文件,关于如何解决这个问题的任何提示?
以下是整个代码,如果有帮助或者您有任何提示! :
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string userInput;
int amoutFiles = 1;
string files[100];
void read();
void write();
void create();
void listAll();
void storage();
void open();
int main()
{
cout << "Welcome to zer0's text editor" << endl;
cout << "Do you wish to :" << endl;
cout << "1: Create file" << endl;
cout << "2: Read Existing file" << endl; // Google getLine();
cout << "3: Write to file" << endl;
cout << "4: List all files" << endl;
cin >> userInput;
if (userInput == "1")
{
create();
cin >> userInput;
}
else if (userInput == "2")
{
open();
read();
cin >> userInput;
}
else if (userInput == "3")
{
open();
write();
cin >> userInput;
}
else if (userInput == "4")
{
listAll();
cin >> userInput;
}
return 0;
}
void read() //Displays text inside .txt file
{
}
void write() //Prints text to exsisting file
{
ofstream myFile;
open();
cout << "Enter the text you want to add:" << endl;
cin >> userInput;
myFile << userInput << endl;
myFile.close();
}
void create() //Creates a new file
{
cout << "Please pick a name for the file" << endl;
cin >> userInput;
ofstream newFile(userInput);
files[amoutFiles] = userInput;
storage();
amoutFiles++;
}
void listAll() //Lists all files as a part of an array
{
for (size_t i = 0; i < amoutFiles; i++)
{
cout << files[i] << endl;
}
}
void storage()
{
ofstream fileList;
fileList.open("fileList.txt");
fileList << userInput << endl;
}
void open()
{
ofstream myFile;
cout << "What file do you wish to open? : " << endl;
cin >> userInput;
myFile.open(userInput);
}
答案 0 :(得分:1)
如果您希望用户只输入名称而不是文件类型,则应在创建文件时附加".txt"
。
ofstream newFile(userInput + ".txt");
唯一的问题是,如果用户输入带扩展名的完整文件名,您最终会得到一个名为"myGreatName.txt.txt"
的文件。
如果您有兴趣修复它,您应该查找C ++字符串操作函数(启动here)并尝试查看如何查找字符串是否以".txt"
结尾。