【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.19363

ファイル書き込み処理について
投稿者---Kei(2005/01/21 13:38:36)


問17-2を参考にscanf関数で入力した文字列をファイルに書き込む処理を
行なっているのですが、書き込み処理を抜けるときのexitが
ファイルに書き込まれないようにするにはどうすれば良いのでしょうか?

書き込みを行なっている箇所を記載しますので、アドバイスをお願いします。

    while(1){
        /* exitと打ち込まれたらメニューに戻る */
        if(strcmp(edit, "exit") == OK){
            ret = menu();
            if(ret != OK){
                printf("メニュー呼び出し失敗\n");
                return NG;
            }
            break;
        } 

        scanf("%s", edit);
        fputs(edit, wfp);
        /* 100バイト以上打ち込まれたらメニューに戻る */
        sum += strlen(edit);
        if(sum > 104){
            printf("100バイト以上は保存できません。\n");
            ret = menu();
            if(ret != NG){
                printf("メニュー呼び出し失敗\n");
                return NG;
            }
        }
    }



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ファイル書き込み処理について 19365 Craft 2005/01/21 15:13:35


No.19365

Re:ファイル書き込み処理について
投稿者---Craft(2005/01/21 15:13:35)


意図があって"exit"判定がscanf()の前にあるのであれば、考慮が必要です。

    while(1){
        /* exitと打ち込まれたらメニューに戻る */
/*
        if(strcmp(edit, "exit") == OK){
            ret = menu();
            if(ret != OK){
                printf("メニュー呼び出し失敗\n");
                return NG;
            }
            break;
        } 
*/

        scanf("%s", edit);

        /* scanf()の直後にExitの判定をする */

        /* exitと打ち込まれたらメニューに戻る */
        if(strcmp(edit, "exit") == OK){
            ret = menu();
            if(ret != OK){
                printf("メニュー呼び出し失敗\n");
                return NG;
            }
            break;
        } 

        fputs(edit, wfp);
        /* 100バイト以上打ち込まれたらメニューに戻る */
        sum += strlen(edit);
        if(sum > 104){
            printf("100バイト以上は保存できません。\n");
            ret = menu();
            if(ret != NG){
                printf("メニュー呼び出し失敗\n");
                return NG;
            }
        }
    }



この投稿にコメントする

削除パスワード

No.19368

Re:ファイル書き込み処理について
投稿者---Kei(2005/01/21 15:41:14)


アドバイスありがとうございました。
おかげさまで出来ました。

意図はなく、言われてみれば納得が出来、
とてもはずかしかったです・・・。

どうもありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧