為什麼這篇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