オープンモード”w+”,"r+","a+"が読み込みモードになるか書き込みモードになるかは最初にfscanf関数がつかわれるかfprintf関数が使われるかによって決まります。
fprintf関数を使った後に fscanf関数を使ってみる
ソーラー 「それではっっ
オープンモード"w+"について考察してみよう」
🌞 🌞
それでは いくよ😊
#include <stdio.h>
int main (void){
FILE *fp;
fp=fopen("TEN-GOGO-C-language.txt","w+");
if(fp==NULL){
printf("ファイルオープンに失敗しましたよ~ん\n");
return -1;}
else printf("Hello!ファイルオープンに成功しましたよ~ん\n");
fclose(fp);
return 0;
}
コンパイル結果
Hello!ファイルオープンに成功しましたよ~ん
まずは
オープンモード"w+"でファイルを開いて
ファイルを閉じてみました
PC内検索で
TEN-GOGO-C-language.txtファイルを検索して
中身を確認してみると
TEN-GOGO-C-language.txtファイル内の
データは消えてしまっています
このように
オープンモード"w+"で
ファイルをオープンした場合は
以前にTEN-GOGO-C-language.txt内に保存されていたデータは
消えてしまいます
そしてオープンモード"w+"は
+により
データの読み込み機能rが追加されていますっっ
ソーラー「TEN-GOGO-C-language.txtファイルには
なにもデータがない😊
ここで
ファイルを閉じる前に
fprintf関数をつかって
TEN-GOGO-C-language.txtファイルに数値データ
1
2
3
4
5
を
かきこんだならば
fscanf関数を使ってそのデータを
コマンドプロンプト画面によびだせるということになるのかな???」
🌻
そうだね😊
試してみよう ソーラーさん😊
🌼
そのプログラムは
以下のようになります
#include <stdio.h>
int main (void){
FILE *fp;
fp=fopen("TEN-GOGO-C-language.txt","w+");
if(fp==NULL){
printf("ファイルオープンに失敗しましたよ~ん\n");
return -1;}
else printf("Hello!ファイルオープンに成功しましたよ~ん\n");
fprintf(fp,"%d\n",1);
fprintf(fp,"%d\n",2);
fprintf(fp,"%d\n",3);
fprintf(fp,"%d\n",4);
fprintf(fp,"%d\n",5);
int hairetu[5];
fscanf(fp,"%d",&hairetu[0]);
fscanf(fp,"%d",&hairetu[1]);
fscanf(fp,"%d",&hairetu[2]);
fscanf(fp,"%d",&hairetu[3]);
fscanf(fp,"%d",&hairetu[4]);
printf("%d\n",hairetu[0]);
printf("%d\n",hairetu[1]);
printf("%d\n",hairetu[2]);
printf("%d\n",hairetu[3]);
printf("%d\n",hairetu[4]);
fclose(fp);
return 0;
}
コンパイル結果
Hello!ファイルオープンに成功しましたよ~ん
9
2
1703760
1964398416
1703808
ソーラー「
なぜ
整数値
1
2
3
4
5
を
TEN-GOGO-C-language.txtファイルに
格納したはずなのに
コンパイル結果は
9
2
1703760
1964398416
1703808
になるのかな?」
🌻 🌻 🌻
??
そうだね
fprintf関数を使った直後に
fscanf関数を使うのは
相性が悪いのかな😊
コンパイル結果をみると
配列 が初期化されていないときに格納されている数値
9
2
1703760
1964398416
1703808
が
fprintf関数によって
表示されてるね
🌼 🌼
ソーラー「PC内検索でTEN-GOGO-C-language.txtファイルの中身を
検索してみると
ちゃんと
fscanf関数によって
1
2
3
4
5
が
TEN-GOGO-C-language.txtファイルに格納されてるからね
それとは別に
オープンモード"w+"
でファイルを開くと 前に保存されたデータは消えてしまうので
オープンモード"w+"の
ファイルデータ読み取り機能は 使えない気がするんだけど・・
そう思わない?」
🌻 🌻
ほんとだね!
面白いね ソーラーさん
🌼
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます