不好意思各位,小弟在讀檔的問題上面有出現一些小問題,
在TXT檔裡面的每一列資料為 2 <空白> aaa <空白> 456 <空白> kkk
當我只有存第一欄資料(在此為2這個數字)時皆沒問題,但當我想加存第三欄資料時(在此為456這個數字),卻發生執行程式突然跳出來,還請各位幫我看看有那邊出了問題,我的compiler可以過^^..謝謝大家了
(PS,我放了一張執行程式跳出來的結果畫面,希望可以有些幫助)
//程式開頭宣告
#include
#pragma hdrstop
#include
#include
#include "Unit1.h"
int *d_day1,*money1;
char *i_num1[10],*people1[7]; //程式開始
FILE *in,*out;
int i=0,j=0,k,m,n,size=0;
char line[maxline];
char d_day[4],i_num[11],money[7],people[8];
char *cp; out=fopen("D:\\out_1.txt","w");
if(OpenDialog1->Execute())
{
if(( in=fopen(OpenDialog1->FileName.c_str(), "r"))==NULL)
{
ShowMessage( "OPen File Error");
}
while (fgets(line,maxline,in)!=NULL&&line[0]!='\n')
{
size++; //計算TXT檔內容有多少筆資料
}
}
in=fopen(OpenDialog1->FileName.c_str(), "r");
d_day1 = new int[size]; //動態矩陣宣告
money1 = new int[size]; while (fgets(line,maxline,in)!=NULL&&line[0]!='\n')
{
cp = line;
i=0;
while ((*cp != ' ')&(*cp != '\0')) //第一欄資料
{
d_day[i]=*cp;
cp++;
i++;
} while (*cp == ' ')
cp++; k=0;
while ((*cp != ' ')&(*cp != '\0')) //第二欄資料
{
i_num[k]=*cp;
cp++;
k++;
} while (*cp == ' ')
cp++; m=0;
while ((*cp != ' ')&(*cp != '\0')) //第三欄資料
{
money[m]=*cp;
cp++;
m++;
} while (*cp == ' ')
cp++; n=0;
while ((*cp != ' ')&(*cp != '\0')) //第四欄資料
{
people[n]=*cp;
cp++;
n++;
} if(i==1)
d_day1[j]=StrToInt(d_day[0]);
else if(i==2)
d_day1[j]=10*StrToInt(d_day[0])+StrToInt(d_day[1]);
else if(i==3)
d_day1[j]=100*StrToInt(d_day[0])+10*StrToInt(d_day[1])+StrToInt(d_day[2]); if(m==1)
money1[j]=StrToInt(money[0]);
else if(m==2)
money1[j]=10*StrToInt(money[0])+StrToInt(money[1]);
else if(m==3)
money1[j]=100*StrToInt(money[0])+10*StrToInt(money[1])+StrToInt(money[2]); fprintf(out, "%d\t""%d\t""\n", d_day1[j],money1[j]);
j++;
}
fclose(in);
fclose(out);