我有一個問題,我真的不明白它可能存在。如何從字符串轉換爲char []使其更長?
我有一大堆的按時間排序,幷包含了一堆對象的文件。結果應該是每個對象每次在目錄中排序一個文件。
它工作的很好,但在將Outputstring
轉換爲char[]
以使用fstream.open()
時,該數組比字符串具有更多3個字符。
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main()
{
string strOutput;
char *OutputFile;
short z;
strOutput = "/home/.../2046001_2013-02-25T0959.txt";
cout << strOutput << endl;
OutputFile = new char[strOutput.length()];
z = 0;
while (z < strOutput.length())
{
OutputFile[z] = strOutput[z];
z++;
}
cout << OutputFile << endl;
return 0;
}
第一輸出總是正確的,但第二有時具有端.txt60A
,.txt5.a
或.txt9.A
。 當它發生它總是相同的對象和時間,它發生每一次嘗試。但並非每個對象都這樣做。
出於顯而易見的原因,我不能在這個最小的代碼片段重現此錯誤,但我也不想張貼整個390行代碼。
你有什麼建議嗎?
['strOutput.c_str()'](HTTP ://en.cppreference.com/w/cpp/string/basic_string/c_str) – 2013-03-15 15:36:05
你不復制nul終止符。 – Pubby 2013-03-15 15:36:17