我正在編寫一個搜索文件的程序。這段代碼將一個文件夾名稱寫入一個字符串流中,在它之前加上一個「./」,這樣它就可以用來改變目錄。然後它更改目錄並通知用戶更改。stringstream中的隨機字符
stringstream maindir;
maindir << "./" << crntmainfile;
maindir.str().copy(maindirectory, 260, 0);
_chdir(maindirectory);
std::cout << maindirectory;
std::cout << "Main directory changed: " << maindirectory << "\n";
我的問題是maindirectory
具有在最後一堆多餘的字符。我假設這與260長度的數組有關,它可能包含20個字符,而額外的字符是佔用未寫入內存的情況。如果這是我的問題,我該如何解決?
編輯: 我確定crntmainfile
爲空終止,但終止符在寫入maindir
時會丟失。這是什麼造成的? <<
是不是將空字符寫入字符串流?我如何解決它?
編輯: 我通過執行maindir.put(0);
後解決了我的問題maindir << "./" << crntmainfile;
手動null終止字符串。
嗯...我改變了 maindir <<「./」<< crntmainfile; 至 maindir <<「./」<< crntmainfile <<「\ 0」; 但它沒有奏效。我做錯了嗎? – FlyingMonkey 2013-05-08 15:41:25
顯然我不能在評論中返回。對不起,如果這很難讀。 – FlyingMonkey 2013-05-08 15:42:22
如果'crntmainfile'是一個字符串,則額外的空字符是多餘的。什麼是不工作 – yngccc 2013-05-08 15:44:36