質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

1456閲覧

4個×3行の数字のファイル入出力がうまくいきません

ain4425

総合スコア19

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/10/07 14:48

c

1#include <stdio.h> 2#include <stdlib.h> 3#include <math.h> 4void Read(); 5void Output(); 6FILE *filepointer; 7FILE *filepointer2; 8int a[4]; 9 10int main(){ 11 int i; 12 char filename[200]; 13 sprintf(filename,"24.txt"); 14 15 if(NULL==(filepointer=fopen(filename,"r"))) 16 { 17 printf("\n %s can not be opened\n",filename); 18 exit(1); 19 } 20 for(i=0; i<3; i++) 21 { 22 Read(); 23 Output(); 24 } 25 fclose(filepointer); 26 fclose(filepointer2); 27 return 0; 28} 29 30void Read(){ 31 fscanf(filepointer,"%d\t%d\t%d\t%d",&a[0],&a[1],&a[2],&a[3]); 32} 33 34void Output(){ 35 char filename2[200]; 36 sprintf(filename2,"27xx.txt"); 37 if( NULL ==(filepointer2=fopen(filename2,"w"))) 38 { 39 printf("\n %s cannot be opened \n",filename2); 40 exit(1); 41 } 42 fprintf(filepointer2,"%d\t%d\t%d\t%d\n",a[0],a[1],a[2],a[3]); 43 44}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ain4425

2016/10/08 13:18

質問内容を投稿するところに誤ってコードだけを打って送信してしまいました。追記で送信したものの、うまく反映されなかったので、失礼してしまいまして申し訳ありません。今回お聞きしたかったことは、テキストファイルから数値を読み取り、それを別のテキストファイルに出力するというものでした。A.Ichi様、こちらの質問内容もままならぬまま回答くださり、本当にありがとうございます。実行してみたところ、まさに願った通りに動きました。本当にありがとうございます。時が経ってしまい、失礼とは存じますが、私のコードのどのあたりがまずかったか、よろしければ教えていただけますでしょうか。
guest

回答1

0

ベストアンサー

ご提示を修正してみました。ご参考まで

c

1#include <stdio.h> 2#include <stdlib.h> 3#include <math.h> 4void Read(); 5void Output(); 6FILE *filepointer; 7FILE *filepointer2; 8int a[4]; 9 10int main(){ 11 int i; 12 char filename[200]; 13 sprintf(filename,"24.txt"); 14 char filename2[200]; 15 sprintf(filename2,"27xx.txt"); 16 17 if(NULL==(filepointer=fopen(filename,"r"))) 18 { 19 printf("\n %s can not be opened\n",filename); 20 exit(1); 21 } 22 if( NULL ==(filepointer2=fopen(filename2,"w"))) 23 { 24 printf("\n %s cannot be opened \n",filename2); 25 exit(1); 26 } 27 28 for(i=0; i<3; i++) 29 { 30 Read(); 31 Output(); 32 } 33 fclose(filepointer); 34 fclose(filepointer2); 35 return 0; 36} 37 38void Read(){ 39 fscanf(filepointer,"%d\t%d\t%d\t%d",&a[0],&a[1],&a[2],&a[3]); 40} 41 42void Output(){ 43 fprintf(filepointer2,"%d\t%d\t%d\t%d\n",a[0],a[1],a[2],a[3]); 44}

投稿2016/10/07 15:49

編集2016/10/07 15:53
A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ain4425

2016/10/08 13:30

昨日はご迷惑おかけしました。追記のほう読んでいただけると幸いです
A.Ichi

2016/10/08 14:08

Output()の中でfopenして(fclose無しで)いましたので、呼ばれる度に新ファイルとして1行書き込んでいたと思います。
ain4425

2016/10/08 14:25

更新していたということですね! 今確認してみたところそうでした。このたびはありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問