看板 C_and_CPP 關於我們 聯絡資訊
最近常在做這重複的事情: http://imgur.com/8kglEPk 就是機器產生出.txt, 因為格式剛好與新機器不同, 因此目前都是人工手動調整變換格式 又剛學C一陣子, 想說就實際例子剛好當個作業來練習, 程式碼: #include <stdio.h> #include <stdlib.h> #include <string.h> FILE *fp1, *fp2; int main(void) { char *token; char szLine[100]; // 足夠裝下一行的 buffer char seps[] = ",\n"; // 以逗點與換行當作分隔符號 char *coeff[10][10]; char *newcoeff[10][10]; char filename1[30], filename2[30]; int i, j; i = 0; printf("請輸入來源檔名: "); scanf("%s", filename1); printf("請輸入目的檔名: "); scanf("%s", filename2); fp1 = fopen(filename1, "r"); fp2 = fopen(filename2, "w+"); if ((fp1 == NULL) || (fp2 == NULL)) { printf("file open error.\n"); } else { while (fgets(szLine, sizeof(szLine), fp1)) // 一次讀進一行 { token = strtok(szLine, seps); // 分割 if ((token != NULL)) { for(j = 0; j <10; j++) { token = strtok(NULL, seps); // 繼續分割 //printf("%s\n", token); coeff[i][j] = token; newcoeff[i][j] = coeff[i][j]; fputs(coeff[i][j], fp2); printf("%s", coeff[i][j]); } printf("\n"); } i = i + 1; } fclose(fp1); fclose(fp2); } printf("測試看看~~~~~\n\n"); /*for(i = 0; i< 4; i++) { for(j = 0; j <10; j ++) { printf("%s ", newcoeff[i][j]); } printf("\n"); }*/ system("pause"); return 0; } 實際結果: http://imgur.com/nLky6io 遇到了以下幾個問題, 想請教各位高手: 1. 螢幕輸出與實際檔案內容不一致: 螢幕輸出: http://imgur.com/jUxe1xH 實際檔案內容: http://imgur.com/WodqLFe 實際內容最前面的1都被砍掉了..... 2. 想將螢幕輸出內容寫到另一個新檔案中,內容是寫進去了, 但格式不一致: 螢幕輸出: http://imgur.com/jUxe1xH 新檔案內容: http://imgur.com/pLHnHDU 新檔案內容完全沒有換行的動作..... 3. 也是目前最困擾我的, 完全沒頭緒該如何下手, 就是該如何把之前 去掉的"逗號", 再新增到相對應的位置 請各位不吝指教, 請告訴我該朝哪個方向做修改, 或是該參考哪些網路資料呢? 感謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.233.249 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1447062260.A.9D0.html
stupid0319: 不要用strtok呀,太依賴現成含數 11/09 19:02
ebubble: 哈 一步一步來吧 我用現成的都還沒做出來.... 11/09 19:32
x000032001: http://paste.plurk.com/show/2273507/ 11/09 19:32
x000032001: 改這樣就好了吧 只是coeff處理下一行 存的值就沒用了 11/09 19:33
ebubble: 感謝幫忙!! 經過修改後已完成~ 11/10 22:25