- ベストアンサー
テキストファイルを読み込むには・・・。
テキストファイルの中身が以下のように abcd,efg,hij,klmn↓ opqr,stu,vwx,yzab↓ cdef,ghi,jkl,mnop↓ . . . . のように何行あるか分からない状態で1行ずつ,と\0で区切って4つの文字列を取り出したい(上のテキストファイルの1行目だと[abcd][efg][hij][klmn]のように)のですがどのようにすればいいのでしょう?できれば余分なメモリを確保するやり方を避けたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#include <stdio.h> #include <string.h> #define MAXLINE 64 void main(void){ char line[MAXLINE]; char *split[4]; FILE *fp; fp=fopen("data.txt","r"); while(NULL!=fgets(line,MAXLINE,fp)){ char *p=line; int i=0; while(NULL!=(p=strtok(p,",\n"))){ split[i++]=p; p=NULL; } printf("1:%s,2:%s,3:%s,4:%s\n",split[0],split[1],split[2],split[3]); } fclose(fp); }
その他の回答 (1)
- notnot
- ベストアンサー率47% (4900/10358)
char line[MAXLINE]; char a[MAXWORD],b[MAXWORD],c[MAXWORD],d[MAXWORD]; として、 while(fgets(line,MAXLINE,fp)){ sscanf(line,"%[^,],%[^,],%[^,],%[^,]",a,b,c,d); a,b,c,dに対する処理 }
お礼
ありがとうございました。うまく分けることができました。
お礼
ありがとうございました。うまくできました。