#include <stdio.h>
#include <string.h>
#define MAXLINE 788
#define MAXCOLUMN 2
void main(void){
FILE *fp; //文件指针
char arr[MAXLINE][MAXCOLUMN]={0}; //定义788行2列的二维数组并初始化
int i = -1;
if((fp=fopen("d:\\plot\\A.txt","r"))==NULL){ //打开txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets
printf("%d: ",i); //打印行号
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格为分隔符从arr[i]中获得字串,百度strtok
while(subarr!=NULL){
data[i][j] = atoi(subarr); //将字串转为int型数据存入data数组
printf("%d\t",data[i][j]); //打印data[i][j
subarr = strtok(NULL," "); //继续获得arr[i]中的字串
j++; //data数组列加一
}
printf("\n");
}
//循环完毕后,所有数据已在data数组中
printf("\n");
fclose(fp); //关闭指针
}
TXT文件部分数据如下:1000 243600
-10000 301000
-100200 246000
-100200 322400
-101200 122800
-101324 265174
-101324 268324
-101324 271474
-101324 274623
-101324 277773
-101324 284072
-101324 287222
-101324 293521
-101324 296670
-101324 299820
-101400 306200
-101400 315600
…………………………
c:\documents and settings\administrator\aa.c(16) : error C2143: syntax error : missing ';' before 'type'
c:\documents and settings\administrator\aa.c(18) : error C2065: 'subarr' : undeclared identifier
c:\documents and settings\administrator\aa.c(18) : warning C4047: '!=' : 'int ' differs in levels of indirection from 'void *'
………………
aa.obj - 14 error(s), 3 warning(s)
#include
#include
!!!!!!#include //那个atoi那个函数的头文件,以后查函数的话,把头文件也查一下
#define MAXLINE 788
#define MAXCOLUMN 2
void main(void){
FILE *fp; //文件指针
char arr[MAXLINE][MAXCOLUMN]={0}; //定义788行2列的二维数组并初始化
!!!!! int data[MAXLINE][MAXCOLUMN]={0}; //data数组未定义。
int i = -1;//!!!!!!!!!!!!!其实用i=0也是可以的下面的++i换成i++就好了
!!!!!!! int j=0;//忘记定义j了。
if((fp=fopen("d:\\plot\\A.txt","r"))==NULL){ //打开txt文件
perror("File open error!\n");
return;
}
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets
printf("%d: ",i); //打印行号
//puts(arr[i]);
char *subarr = strtok(arr[i]," "); //以空格为分隔符从arr[i]中获得字串,百度strtok
while(subarr!=NULL){
data[i][j] = atoi(subarr); //将字串转为int型数据存入data数组
printf("%d\t",data[i][j]); //打印data[i][j
subarr = strtok(NULL," "); //继续获得arr[i]中的字串
j++; //data数组列加一
}
printf("\n");
!!!!!!! }//这里的{多余了,还是说是这个(while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets)里的,是的话就在前面加上吧
//循环完毕后,所有数据已在data数组中
printf("\n");
fclose(fp); //关闭指针
}
语法错误的好像就这些了,不过啊,程序还是错了的
char arr[MAXLINE][MAXCOLUMN]={0}; //定义788行2列的二维数组并初始化
你是从文件里读取字符串的啊,不是读取一个字符,这样子的声明只是读取一个字符而已啊。
C:\Documents and Settings\Administrator\aa.c(19) : error C2143: syntax error : missing ';' before 'type'
C:\Documents and Settings\Administrator\aa.c(20) : error C2065: 'subarr' : undeclared identifier
^^^^^^^^^^^^^^
aa.obj - 7 error(s), 4 warning(s)
话说 这里的
while((fgets(arr[++i],MAXCOLUMN+1,fp))!=NULL) //读取一行并存到arr数组,百度fgets
问题修改了吗,那里有个大括号不匹配。
要不程序贴出来吧,嗯用私信吧,据说追问过多要扣分的
你邮箱
追答去你的消息里看看 就在那里发吧,邮箱什么的不太上啊
刚刚看了下用fscanf会比较好吧。
参考资料:http://baike.baidu.com/view/656694.htm
本回答被网友采纳