納得C言語!
(1)解答
解答プログラム
#include <stdio.h>
#include <string.h>
int main(){
FILE *fp; //ファイルポインタ
char str[1024];
fp = fopen("日本国憲法.txt","w"); //書き込み専用でファイルを開く
if(fp==NULL){
printf("ファイルオープンエラー");
return -1; //ファイルを開けなかった場合の対策として終了させる
}
while((strcmp(str,"end"))!=0){ //文字列の比較endを入力すると書き込みを終了する
scanf("%s",str); //文字列の入力
fprintf(fp,str); //fpに入力文字を格納しファイルに出力
}
fclose(fp);//ファイルを閉じる
return 0;
}
結果
ここは入力するだけですね。
フォルダを見てファイルがあるか確認してみてください。
まずファイル構造体へのポインタを宣言します。
次に書き込みモードでファイルを開きます。
このとき、名前は自分の好きなものでかまいません。
while文でendが入力されるまでキーボードから読み込み、ファイルに書き込んでいきます。
endが入力されたらwhileを終了し、ファイルを閉じて終了となります。
(2)解答
解答プログラム
#include <stdio.h>
#include <string.h>
int main(){
FILE *fp;
char str[256];
fp = fopen("日本国憲法.txt","r"); //ファイルを開く
if(fp==NULL){ //ファイルオープンに失敗した場合の対策
printf("ファイルオープンエラー");
return -1;
}
while(fgets(str,255,fp)){ //fgetsで"日本国憲法.txt"の中身を読み出し
printf("%s", str); //画面出力
}
printf("\n");
fclose(fp); //ファイルを閉じる
return 0;
}
結果
ファイルに書き込まれていたものが表示されましたね。
解答のプログラムではendも出力されてしまっています。練習問題1と2、どちらか直せば出なくなりますので、やってみてください。
こちらは練習問題1の反対ですね。
練習1で保存したファイル名を読み込みモードで開きます。
次に、指定した文字数分だけ読み込み出力し、ファイルの最後まで到達したら終了します。