2011-06-30 4 views
0
cout << "Enter your full name"; 
char* name ; 

cin >> name; 
    if(_mkdir("c:\\names") == 0) { 
    cout << "directory successfully created"; 
    } else { 
     cout << "there was a problem creating a directory"; 
    } 

と同じ名前のファイルを作成する今私はuserの名前と同じ名前のディレクトリ内のファイルnames(.txtファイル)を作成したいです。 cin >> name;の間にユーザーが入力した名前です。は、入力

どうすればいいですか?

ofstream writeName("c:/names/????); ----> PROBLEM

+2

'char * name; cin >> name; ' - あなたはこれが何をするのか知っていると思いますか? – Donotalo

答えて

4

char*の代わりにstd::stringを使用してください。あなたのコードは未定義の振る舞いを持っています。 >>の代わりにstd::getlineを使用してください。 >>では、空白で区切られた最初の「単語」のみが入力されます。次に、完全なパスをstd::stringで作成します。標準の文字列クラスは連結をサポートしているので、これは簡単なはずです。

言う、その文字列はpath

std::ofstream f(path.c_str()); 

乾杯& HTH。、1つの文字に

0

あなたは、ファイルまたはofstreamとをINGのfopenことでテキストファイルを作成することができます。

nameの入力方法は間違っています。 nameのスペースを割り当てていませんでした。お試しくださいmallocまたはnew

0

char*点である場合。初期化されていないので、それはnirvana - >未定義のバーチャルを指しています。

char name[MAX_LENGTH_FOR_YOUR_NAME]を試すことができます。ここでstd::string nameを使用する方が良いです。

+1

-1:あなたは質問に答えなかった – saplingPro