2016-07-11 8 views
1

Я пытаюсь передать строку как путь для потока. Я использую функцию .c_str(), но программа запускается без создания файла.Используйте строку, содержащую метки qutation, чтобы указать путь к файлу для потока в C++

ifstream path_stream ("config.txt"); 
path_stream >> path; 
path_stream.close(); 
ofstream datum (path.c_str()); 

Содержание config.txt является

"test.txt" 

Если я дам, что непосредственно ofstream, программа создает файл test.txt.
С помощью строки она запускает программу без вывода.

+3

Ваш код выглядит просто прекрасно, хотя _ «Не работает» _ - это слишком неопределенное описание ошибок, которые вы получаете. Предоставьте [MCVE], пожалуйста, что воспроизводит вашу проблему. Каково содержимое 'config.txt' на самом деле? –

+0

В файле config.txt есть только «test.txt» (с кавычками). Если я передам это непосредственно потоку, программа создаст файл test.txt. С помощью строки она запускает программу без вывода. – DerOmmel

+0

Файлы не могут иметь имена с «. Вы пытаетесь создать его. – Tyler

ответ

0

Проблема в том, что вы поместили путь к файлу в свой файл config.txt в кавычки.

Если я даю это непосредственно ofstream, программа создает файл test.txt.

Я полагаю, вы уже пробовали

ofstream datum ("test.txt"); 

, который очень отличается от

ofstream datum ("\"test.txt\""); 
       // ^^  ^^ 

, как это эквивалент

ofstream datum (path.c_str()); 

после path был прочитан из файла ,

Так что просто удалите кавычки из файла config.txt.