作者belle800620 (企鵝)
看板C_and_CPP
標題[問題] 在迴圈裡面重複寫出txt檔
時間Wed Oct 29 00:40:49 2014
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
C 語言
問題(Question):
想要在迴圈裡面多次輸出不同的檔案
但是輸出的檔案名稱其中一部分會隨著變動
目前我這樣寫雖然可以輸出多個txt檔
但是不知為何名稱變成亂碼@@
程式碼如下:
char file_start[15] = "Results_time_"; //這部分名稱是固定的
char file_end[15] = ".text";
char order; //這部分名稱會隨著下面迴圈跑到哪裡而改
for(i=0;i<100;i++)
{
if(i%5==0) //當i除以5為整數時才輸出檔案
{
order = (char)(i);
string a;
a.assign ( file_start + order + file_end );
Results = fopen ( a, "w+");
}
}
不知道為什麼輸出結果的檔名是一堆亂碼@@...
先謝謝大家了:)
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 126.88.207.102
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414514452.A.4AC.html
推 LPH66: a.assign 這裡錯了, 你應該先 assign 第一部份 10/29 00:42
→ LPH66: 再用 a += order; a += file_end; 黏上去 10/29 00:42
→ LPH66: 主要原因是 file_start file_end 是 C 字串不是字串物件 10/29 00:43
→ LPH66: 所以對它們用 + 是錯誤的作法 10/29 00:43
→ LPH66: 而 a 則是字串物件了, 所以可以對它用 + += 等操作 10/29 00:44
→ LPH66: 另外如果你是要黏 i 的數值的話, + i 或 + order 都不行 10/29 00:45
→ LPH66: 這種你應該需要 stringstream 物件幫你黏字串 10/29 00:46
→ belle800620: 先謝謝你:)我嘗試用了你說的a+=,但是他說我的a是 10/29 00:56
→ belle800620: undeclared identifier @@ 為什麼啊... 10/29 00:57
→ dirkc: 編譯器認為它未宣告;你可以看看宣告的那行是否哪裡有錯 10/29 11:56