Сохранить TXT-файл как имя переменной

0

Я хотел бы, чтобы пользователь должен был ввести имя файла, например testquote, а затем для моей программы добавить.txt в конец, чтобы сохранить файл как.txt, поэтому я могу сохранить несколько кавычек на компьютер без над письмом. Это то, что у меня есть до сих пор:

cout << "What would you like to save the quotation as? (Maybe using your last name) " << endl;
    cin >> nameOfFile;

    ofstream outfile; // Opens file in write mode
    outfile.open(nameOfFile)<<(".txt"); // Opens the quotations file
    //Lawn
    outfile << "The total lawn area is " << lawnArea << " square meters" << endl; // Writes users data into the file 
    outfile << "The total cost for the lawn is £" << (lawnArea * lawnCost) << endl; // Writes users data into the file 
  • 0
    Какая у вас проблема?
  • 0
    Является ли nameOfFile std::string ?
Показать ещё 1 комментарий
Теги:

2 ответа

5

Предполагая, что nameOfFile является std::string, вы можете использовать std::string::operator+ чтобы std::string::operator+ его с ".txt":

ofstream outfile(nameOfFile + ".txt");

(Примечание: нет необходимости open вызов - просто передайте имя файла конструктору)

  • 0
    Спасибо, отлично сработало и спасибо за дополнительную детализацию, большое спасибо! Приму ответ, когда это возможно
0
outfile.open(nameOfFile)<<(".txt"); // Opens the quotations file

Эта строка кода просто неверна. Вы, кажется, std::ofstream с использованием operator<< в сочетании с классом std::ofstream.

Вам нужна std::string содержащая имя файла, который нужно открыть. Добавление расширения .txt должно выполняться автоматически, не так ли?

Итак, сначала у меня есть переменная, чтобы получить выбор имени файла пользователя (без .txt):

std::string nameOfFile;

// ...
cin >> nameOfFile;

Затем добавьте .txt:

nameOfFile += ".txt";

Затем std::ofstream с помощью этой строки:

std::ofstream outfile(nameOfFile.c_str());

Ещё вопросы

Сообщество Overcoder
Наверх
Меню