[問題] 讀檔 陣列轉換 寫入檔案 問題
最近常在做這重複的事情:
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
推
11/09 19:02, , 1F
11/09 19:02, 1F
→
11/09 19:32, , 2F
11/09 19:32, 2F
→
11/09 19:32, , 3F
11/09 19:32, 3F
→
11/09 19:33, , 4F
11/09 19:33, 4F
→
11/10 22:25, , 5F
11/10 22:25, 5F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章