ファイルを読み込むところまでは書けたのですが、その後別のファイルに逆順で書き出す、という部分に詰まっています。どのようにすれば良いのでしょうか?
C
1#include <stdio.h> 2int main(void){ 3 FILE *fp,*sf; 4 char name[20]; 5 double height, weight; 6 7 fp = fopen("score.txt","r"); 8 9 sf = fopen("score_r.txt","w"); 10 if(sf == NULL){ 11 printf("ファイルオープンエラー\n"); 12 return -1; 13 } 14 15 while(fscanf(fp,"%s %lf %lf",name,&height,&weight) == 3) 16 { 17 fprintf(fp,"%s %lf %lf",name,height,weight); 18 } 19 20 fclose(fp); 21 fclose(sf); 22return 0; 23}
https://teratail.com/questions/277315
の質問でPUSH/POPが理解できたならname,height,weightをメンバに持たせて
読み取ったものをすべてPUSHし、POPで逆順に取得しながらfprintfすればいい。
それを前提として出題されているのでは?
前の質問に比べたら考えた跡が感じられませんね。低評価は私がしたものではありませんが、その辺りの丸投げ感がそのように評価されたのだと思います。
行をまるごとひっくり返す“だけ”なのに、fscanf()やfprintf()が必要なのでしょうか?
> ファイルを読み込むところまでは書けたのですが、
いやこれ見本でしょう。height とか weight とか関係ないもの入ってるし。
> fscanf()やfprintf()が必要なのでしょうか?
問題が「名前 身長 体重 を"それぞれ"読み取る」とあるからには。
一行まるっと 読み/書き すればいいなら fgets/fputs で十分ですけどねー
一行まるごと読み書きすればいいだけですが、問題文に書いてある以上はfscanf/fprintfでやらないと0点or再提出でしょうね…
> https://teratail.com/questions/277315
> の質問でPUSH/POPが理解できたなら...
> それを前提として出題されているのでは?
コレ↑に一票。
焦ってしまってあまり考えずに質問してしまいました。
PUSH/POPの理解が前提となってるのかもしれません。もう少しゆっくり考えてみようと思います。
> ファイルを読み込むところまでは書けたのですが
とありますが、それが正しく動いたことはどうやって確認しましたか?
> その後別のファイルに逆順で書き出す、という部分に詰まっています。
逆順ではなく、正順に書き出すことはできますか?
できたら、質問を編集してそのコードを追記してください。
回答4件
あなたの回答
tips
プレビュー