读取文件内容存到数组的具体代码实现
//********************************************************//
int edge_num = 1000;int spec = 1000; //表示行数
char * topo[1000]; //将topo赋给buff
char ** const buff = topo; //创建二位数组的形式
char * filename = "skill.txt";FILE * fp = fopen(filename, "r");
if (fp == NULL)
{
//PRINT("Fail to open file %s, %s. ", filename, strerror(errno));
return 0;
}
char line[MAX_LINE_LEN + 2];
unsigned int cnt = 0;
while ((cnt < spec) && !feof(fp))
{
line[0] = 0;
fgets(line, MAX_LINE_LEN + 2, fp);
if (line[0] == 0) continue;
buff[cnt] = (char *)malloc(MAX_LINE_LEN + 2);
strncpy(buff[cnt], line, MAX_LINE_LEN + 2 - 1);
buff[cnt][102] = 0;
cnt++;
}
fclose(fp);
//对topo进行操作,取出每一列的数据
char * delim = " "; //以制定的格式进行列的分割
char *p = NULL;
int ii = 0, jj = 0;
char buffer[1000];
int value = 0;
int DATA[1000][27] = {0};
for(ii=0; ii<edge_num; ii++) //对每一行进行操作
{
memcpy(buffer, topo[ii], strlen(topo[ii]));
p = strtok(buffer, delim); //用到字符串的分割函数
//while(NULL != p)
p = strtok(NULL, delim);
while(*p != " ") //需要分割的列书为4行
{
value = atoi(p);
if(value != 0)
{
DATA[ii][value-1] = 1;
}
p = strtok(NULL, delim);
}
}
///测试用例
//
/*
for(int aa = 0; aa<1000; aa++)
{
for(int bb=0; bb<20; bb++)
{
printf("%d ", DATA[aa][bb]);
}
printf(" ");
}
*/
//********************************************************//
写入文件操作:
FILE * fP;//
fP = fopen("Result.txt","w");//新建的文件放在d盘里面Result.txt
//printf("输出测试处理后的T:
");
for(int a=0;a<n;a++) //输出测试处理后的T
{
for(int b=0;b<k;b++)
{
fprintf(fP,"%d
",T[a][b]);
}
fprintf(fP,"
",NULL);
}
fclose(fP);
读取单列数据的方法:
//********************************************************//
int FileReader(char * file,double * a){
FILE * fp1 = fopen(file, "r");//打开输入文件
if (fp1==NULL) {//若打开文件失败则退出
puts("不能打开文件!");
return 0;
}
for(int i=0;fscanf(fp1,"%lf",a+i)!=EOF;i++);//从输入文件连续读取整数到数组a
fclose(fp1);//关闭输入文件
return 1;
}
总结 :
一般读取文件使用 fscanf函数 fgets函数
一般输出文件使用 fprintf函数
//********************************************************//
int edge_num = 1000;int spec = 1000; //表示行数
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: c语言中如何使用malloc()函数在堆上建立二维数组
- 下一篇:没有了