转动userInput - > “userInput.txt”

时间:2018-01-03 17:02:49

标签: c++

我正在尝试用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);
}

1 个答案:

答案 0 :(得分:1)

如果您希望用户只输入名称而不是文件类型,则应在创建文件时附加".txt"

ofstream newFile(userInput + ".txt");

唯一的问题是,如果用户输入带扩展名的完整文件名,您最终会得到一个名为"myGreatName.txt.txt"的文件。

如果您有兴趣修复它,您应该查找C ++字符串操作函数(启动here)并尝试查看如何查找字符串是否以".txt"结尾。