質問失礼します。
ライフゲームの抜粋なのですがファイルの読み込みのところで
fgetsを使って1行読み取っていると思うのですが
tate++でなぜ2行目が読み取れているのでしょうか。
個人的な解釈だと、
fgetsで1行を読み取り、bufの中身(ファイルの中身の1行目)をyokoがyokocnt(38)まで繰り返す。
そのファイルの中身が1なら1、違うなら0を格納
2行目に行くためだと思われるtate++なのですがfgetsで1行しか読み込まれていないと解釈しているため、なぜtate++のみでif (buf[yoko] == '1')で2行目が判定されているのでしょうか?
fgetsのループも1行ずつ読み込んでいるとファイルが存在していると無限にループされると思うのですが違いますでしょうか?
ファイルの中身は1と0のみになります。
テキストを読んでも説明なしで使用されていたため理解できなかったので質問させていただきました。
よろしくお願いします。
C
1 #define yokocnt 38 2 3 4 char buf[128]; 5 while (fgets(buf, sizeof(buf), fp) != NULL) { 6 for (yoko = 0; yoko < yokocnt;yoko++) { 7 8 if (buf[yoko] == '1') { 9 map[tate][yoko] = 1; 10 } 11 else{ 12 map[tatw][yoko] = 0; 13 14 } 15 16 }tate++; 17 printf("\n"); 18 } 19
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/08 01:36
2020/07/08 01:40
退会済みユーザー
2020/07/08 01:44
2020/07/08 01:45
退会済みユーザー
2020/07/08 01:56
2020/07/08 12:18
退会済みユーザー
2020/07/09 05:10