2011-06-30 102 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"; 
    } 

現在我想在目錄names創建一個文件(.txt文件)具有相同的名稱作爲user的名稱。我的意思是用戶在cin >> name;期間輸入的名稱。創建具有相同名稱的文件作爲輸入

我該怎麼做?

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

+2

'char * name; cin >> name;' - 你認爲你知道這是做什麼的嗎? – Donotalo

回答

4

使用std::string而不是char*。因爲它是你的代碼有未定義的行爲。使用std::getline而不是>>。用>>只輸入第一個以空格分隔的「單詞」。然後,在std::string中撰寫完整路徑。標準的字符串類支持連接,所以這應該很容易。

說,如果該字符串是path

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

乾杯&心連心,

0

您可以創建fopen一個文本文件,荷蘭國際集團的文件或ofstream

但是你的輸入方式name似乎是錯誤的。您沒有爲name分配空間。嘗試使用mallocnew

0

char*指向一個字符。由於它沒有初始化,它指向涅 - - >undefined bahavior

您可以嘗試使用char name[MAX_LENGTH_FOR_YOUR_NAME]。這裏最好使用std::string name

+1

-1:你沒有回答這個問題 – saplingPro

相關問題