2013-12-19 4 views
0

Что бы я хотел, чтобы пользователь сделал это, введите имя файла, например testquote, а затем для моей программы, чтобы добавить .txt в конец, чтобы сохранить файл как .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

Какая у вас проблема? – khajvah

+0

Является ли 'nameOfFile'' 'std :: string'? –

+4

'outfile.open (nameOfFile) << (". Txt "); // Открывает файл котировок 'Нет, это определенно не так !!! Сначала создайте строку (например, используя оператор '+'), затем откройте файл с построенной строкой. –

ответ

5

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

ofstream outfile(nameOfFile + ".txt"); 

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

+0

Спасибо, работал отлично и спасибо за дополнительную деталь, огромное спасибо! Примите ответ, когда это возможно. – user3120369

0
outfile.open(nameOfFile)<<(".txt"); // Opens the quotations file 

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

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

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

std::string nameOfFile; 

// ... 
cin >> nameOfFile; 

Затем присоединять .txt:

nameOfFile += ".txt"; 

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

std::ofstream outfile(nameOfFile.c_str()); 
Смежные вопросы