前提・実現したいこと
ファイル読み込みを行っているコードを読み取りたいです。具体的には、以下のコードです。
アルファベットをつけている行のコードが理解できません。
A...ファイルポインタに、buff のアドレスを代入している。
B...line[line_no++] = buff; ではだめなのか、この行の意味が理解できません。
C...このif文の中で何を行っているのか、さっぱり理解できません。
D...なぜ最後に0 NULLを代入しているのか
どなたか教えていただけますでしょうか。
ソースコード
C
1int main(){ 2 int c; 3 char buff[1000]; 4 char *line[50]; 5 int line_no=0; 6 char *p; 7 int i; 8 FILE *fp; 9 10 p = buff; // A 11 line[line_no++] = p; // B 12 13 fp=fopen("sample.txt","r"); 14 15 while((c=fgetc(fp)) != -1){ 16 *p++ = c; 17 if(c == 0x0a){ // C 18 *p++ = 0; 19 line[line_no] = p; 20 line_no++; 21 } 22 } 23 24 *p = 0; // D 25 fclose(fp); 26 27 return 0; 28}
また、このプログラムは、バッファリングをしているといえるでしょうか。(バッファリングの意味が広すぎてわからないです。)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/14 10:29
2021/11/14 12:21 編集
2021/11/14 11:48
2021/11/14 12:25