2015-02-06 4 views
0

Я пытаюсь сделать своего рода блокнот для командной строки с C++. Я хочу, чтобы кто-то мог указать имя, которое они хотят для файла, и что они хотят в файле. Как мне это сделать? Это то, что у меня есть:Как использовать scanf для имени файла?

printf("What do you want to call it?\n"); 
    scanf_s("%s", &filename); 

    ofstream myfile; 
    myfile.open("%s", filename); 
    myfile.close(); 
    return 0; 

Если вы хотите, вы можете отредактировать это или просто сделать это с нуля. Также, пожалуйста, помогите мне дать им ввести то, что они хотят.

+0

Было бы проще, если бы вы использовали C++. Я имею в виду std :: cin вместо scanf_s и std :: cout вместо printf – drescherjm

+3

Не 'myfile.open («% s », filename);', просто 'myfile.open (filename);'. –

+0

@RSahu это не сработало. Он говорит, что он должен быть const char, но выходит с ошибкой. Кроме того, я получаю это « IntelliSense: нет экземпляра перегруженной функции« std :: basic_ofstream <_Elem, _Traits> :: open [с _Elem = char, _Traits = std :: char_traits ] "соответствует списку аргументов аргумент типы: (int) Тип объекта: std :: ofstream \t c: \ Users \ ***** \ Documents \ Visual Studio 2013 \ Projects \ Burd \ WordPad \ WordPad \ WordPad.cpp WordPad " –

ответ

3

Вот код, который я думаю, что вы ищете:

#include <string> 
#include <iostream> 
#include <fstream> 

int main(void) 
{ 
    std::string filename; 
    std::cout << "Enter filename to create: "; 
    std::cin >> filename; 
    std::ofstream my_file(filename.c_str()); 
    if (my_file) 
    { 
    my_file << "Sample text\n"; 
    my_file.close(); 
    } 
    return 0; 
} 
+0

Большое вам спасибо! Он работал –

+0

Нажмите на галочку, если ответ вам поможет. –