怎样把她的读取量搞大啊!
我的文本文件中有几十万行数字,每一行有6个两位数,用逗号格开的,以回车换行接尾。我希望能把它们录入到一个二维数组中a[n][5],具体程序应怎样编写啊?请高手详解。数据类型如下:
03,06,09,16,19,20
03,06,09,16,19,21
03,06,09,16,19,22
03,06,09,16,19,23
03,06,09,16,19,24
03,06,09,16,19,25
03,06,09,16,19,26
03,06,09,16,19,27
03,06,09,16,19,28
03,06,09,16,19,29
03,06,09,16,19,30
03,06,09,16,19,31
03,06,09,16,19,32
03,06,09,16,20,21
我在网上查找的代码只可以正常读取100行,此代码需要修改才可以,但是不知道改那个地方,修改此处是不行的“#define MAXROW 100”。
代码如下:
// c1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#define MAXROW 102
#define MAXCOL 10
int main()
{
float input[MAXROW][MAXCOL];
FILE *fd=NULL;
fopen_s(&fd,"C:\\q1.txt", "w");
FILE * fp = NULL;
fp = fopen("c:\\q.txt", "r+");
char file[256] = "c:\\ssq.txt";
int row = 0;
int col = 0;
int k;
char strtmp[256], *str2;
if(fp != NULL){
while(fgets(strtmp, 256, fp)){
str2 = strtmp;
col = 0;
char sp[25], *ptr;
while(ptr = strchr(str2, ',')){
strncpy(sp, str2, ptr-strtmp);
sp[ptr-strtmp]='\0';
input[row][col++] = atof(sp);
str2 = ptr+1;
}
input[row][col++] = atof(str2);
row ++;
}
}
else
printf( "open file failed\n");
int i, j;
for( i = 0; i < row; i++){
for( j = 0; j < col; j++)
{
k=(int)input[i][j];//点型转整型
printf("%d ", k);
fprintf(fd,"%d ",k);
}
printf("\n");
fprintf(fd,"\n");
}
fprintf(fd,"成功!%d",i);
fclose(fp);
fclose(fd);
return 0;
}
[ 本帖最后由 zjc201003 于 2010-9-11 18:50 编辑 ]