以下プログラム
//プログラム #include<stdio.h> #include<ctype.h> #include<stdlib.h> #include<string.h> //定数 #define MAP_X 5 #define MAP_Y 5 //メイン関数 void main(void) { FILE *fp; char *filename = "map.txt"; //アドレスにmap.txtを入れる? char date[3+1]; //なぜ4じゃなく3+1と記述しているのか不明 int x,y,c; //x,yは出力用の変数。cはファイルから読み出した数値を入れている? int keta_cnt=0; int date_cnt=0; int buff[MAP_X*MAP_Y+1]={0}; int Mapdate[MAP_Y][MAP_X]={0}; if((fp=fopen(filename,"r"))==NULL){ //map.txtファイルがなかったら警告を出して終了 "r"は読み込み(read) printf("%s-Not Found\n",filename); return ; } while((c=getc(fp))!=EOF){ //ファイルから一文字入力(getc)。fgetcでも可。fpがEOFではない間以下の処理を行う? if(isdigit(c)){ //isdigit数字(0~9)なら真。 date[keta_cnt]=(char)c; //data[keta_cnt]の中にcの数値を文字型で入れる。 keta_cnt++; } else{ //そうでなければ date[keta_cnt]='\0'; buff[date_cnt]=atoi(date); //文字列をint型に変換 keta_cnt=0; keta_cnt++; if(date_cnt >= MAP_X*MAP_Y) break; } } fclose(fp); //fopenでオープンされたファイルをクローズする。正常なら0、エラーならEOFを返す memcpy(Mapdate,buff,sizeof(Mapdate)); for(y=0;y<MAP_Y;y++){ //出力部分 for(x=0;x<MAP_X;x++){ printf("%d",Mapdate[y][x]); } printf("\n"); } return ; }理解するために注釈文だらけです。
どこかおかしいところでもあるのでしょうか・・・?