Я хотел бы, чтобы пользователь должен был ввести имя файла, например 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
Предполагая, что nameOfFile
является std::string
, вы можете использовать std::string::operator+
чтобы std::string::operator+
его с ".txt"
:
ofstream outfile(nameOfFile + ".txt");
(Примечание: нет необходимости open
вызов - просто передайте имя файла конструктору)
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());
nameOfFile
std::string
?