[爆卦]C語言 讀 取 txt是什麼?優點缺點精華區懶人包

為什麼這篇C語言 讀 取 txt鄉民發文收入到精華區:因為在C語言 讀 取 txt這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者gna239 ( Kaonashi)看板C_and_CPP標題[問題] C語言 讀取txt的問題...


我的問題是要從txt檔裡讀取裡面的成績

然後成積再做排序的動作

所以我把讀取成績的時候把它存到陣列裡面

可是 我txt檔的內容是

50
60
30
30
90
60
70
20
80
60
30

讀出來的卻是

V[0][0] = 50
V[1][0] = 60
V[2][0] = 30
V[3][0] = 30
V[4][0] = 90
V[5][0] = 60
V[6][0] = 70
V[7][0] = 20
V[8][0] = 80
V[9][0] = 60
V[10][0] = 0

最後一個值不對... 附上我的程式碼

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define FALSE -1
#define SUCCESS 0
#define MAX_NUM 1000

int main(void)
{
FILE *fp= NULL;
char tmp[10] = {0};
char buffer[MAX_NUM] = {0};
int **V = NULL;
int row = 0, column = 0, column_tmp = 0;
int i = 0, j = 0;


if( (fp = fopen("input.txt", "r")) == NULL )
return FALSE;


while( fgets(buffer, MAX_NUM, fp) != NULL )
{
row += 1;

for(i=0, j=0; i<=(int)strlen(buffer); i++)
{
if( (buffer[i] == '\n') || (buffer[i] == '\t') )
{
column_tmp++;
j = 0;
memset(tmp, 0, sizeof(tmp));
}
else
{
tmp[j] = buffer[i];
j++;
}
}

if( column_tmp > column )
column = column_tmp;

column_tmp = 0;
memset(buffer, 0, sizeof(buffer));

}

V = (int **)malloc(row * sizeof(int *));

for(i=0; i<row; i++)
V[i] = (int *)malloc(column * sizeof(int));

for(i=0; i<row; i++)
for(j=0; j<column; j++)
V[i][j] = 0;


row = 0;
column = 0;
memset(tmp, 0, sizeof(tmp));
memset(buffer, 0, sizeof(buffer));


fseek(fp, 0, SEEK_SET);

while( fgets(buffer, MAX_NUM, fp) != NULL )
{

for(i=0, j=0; i<=(int)strlen(buffer); i++)
{
if( (buffer[i] == '\n') || (buffer[i] == '\t') )
{
V[row][column_tmp] = atoi(tmp);

column_tmp += 1;
j = 0;
memset(tmp, 0, sizeof(tmp));
}
else
{
tmp[j] = buffer[i];
j++;
}
}

row += 1;

if( column_tmp > column )
column = column_tmp;

column_tmp = 0;
memset(buffer, 0, sizeof(buffer));

}

fclose(fp);

for(i=0; i<row; i++)
for(j=0; j<column; j++)
printf("V[%d][%d] = %d\n", i, j, V[i][j]);
system("pause");

return SUCCESS;
}
有一點長...拜託大家幫幫忙


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.252.52
qazq:你的陣列 size 只有 10,你的資料確有 11 筆 05/11 18:51
Peruheru:跟我一樣是寫VB的習慣導致?VB裡陣列是宣告最大值 05/11 21:09
Peruheru:宣告a[10]是11筆資料,而c裡面宣告a[10]只有0~9的10筆 05/11 21:10
gna239:不是陣列大小的問題!! 05/11 23:49
ke60811: 要不要用fscanf去讀讀看@@? 05/12 01:28
world9918:你的文字檔要在30後面多一個換行... 05/19 23:11

你可能也想看看

搜尋相關網站