前提・実現したいこと
C言語でテキストファイルを読み込み別のファイルに書き込むプログラムを作りたいのですが
発生している問題・エラーメッセージ
strcmpを使って、"Y"が打ち込まれたときだけファイルを読み込む処理を実装したいのですが、"Y"と打ち込んでもexit(1)が反応してしまいます。
kpra.exe
読み込むファイル名を指定してください。:test.txt
test.txtの内容をrev2.txtに書き込みます。よろしいですか? (Y/N)y
ここでプログラム文が終了しました。
該当のソースコード
C言語
ソースコード
include <stdio.h>
include <stdlib.h>
include <string.h>
int main() {
//ファイル構造体へのポインタを宣言
FILE *fr, *fw;
char str[256], filename[256], *ans;
//読み込むファイルを開く printf("読み込むファイル名を指定してください。:"); scanf("%s", filename); fr = fopen(filename,"r"); //ファイルが開けなかったとき if(fr==NULL) { //失敗を表示して終了 printf("ファイルを開けませんでした\n"); return -1; } //読み込ませるファイルを開く fw = fopen("rev2.txt","a"); //ファイルが開けなかったとき if(fw==NULL){ //失敗を表示して終了 printf("ファイルを開けませんでした\n"); return -1; } printf("%sの内容をrev2.txtに書き込みます。よろしいですか? (Y/N)", filename); scanf("%s", ans); if(strcmp(ans,"Y")) { printf("続行します。\n"); } else { printf("中断します。\n"); exit(1); } //ファイルへの書き込み while(fgets(str, 256, fr)){ printf("%s", str); fputs(str, fw); } printf("書き込み完了しました。\n"); fclose(fw); fclose(fr); return 0;
}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。