下記のコードでmainのforの中の動きで、実行結果の
問題=試験 解答=examinationまではだいたいわかるのですが、
q==1の時の実行結果に移る時の過程がわからないので
教えてください。
for文の1回目が終わって、2回目に移る時(q==1)コードch = fgetc(fp);の
状態がわかりません。
ようは、問題=本 解答=bookが表示される過程です。
お願いいたします
コード // 単語をファイルから読み込むプログラム(改良版) #include <ctype.h> #include <stdio.h> #define Q_NO 3 // 問題の個数 FILE *fp; //--- 初期処理 --- int initialize(void) { fp = fopen("DATA", "r"); return ((fp == NULL) ? 0 : 1); } //--- 終了処理 --- void ending(void) { fclose(fp); } int main(void) { if (initialize()) { int q, ch; char qus[20]; // 問題用文字列 char ans[20]; // 解答用文字列 for (q = 0; q < Q_NO; q++) { int i; ch = fgetc(fp); if (ch == EOF) goto ending; for (i = 0; !(isspace(ch)); i++) { qus[i] = ch; ch = fgetc(fp); } qus[i] = '\0'; ch = fgetc(fp); for (i = 0; !(isspace(ch)); i++) { ans[i] = ch; ch = fgetc(fp); } ans[i] = '\0'; printf("問題=%s 解答=%s\n", qus, ans); } ending: ending(); } return (0); } 実行結果 naka@naka ~/meikaicjs/chap04 $ gcc -o list4_21 list4_21.c -Wall naka@naka ~/meikaicjs/chap04 $ list4_21 問題=試験 解答=examination 問題=本 解答=book 問題=少女 解答=girl naka@naka ~/meikaicjs/chap04 $
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/03/13 03:49
退会済みユーザー
2018/03/13 03:51
2018/03/13 03:58
2018/03/13 03:59
退会済みユーザー
2018/03/13 04:04
2018/03/13 04:05
退会済みユーザー
2018/03/13 04:08
2018/03/13 04:08
退会済みユーザー
2018/03/13 04:16