c
1#include <stdio.h> 2 3void write_profile(FILE *fp) 4{ 5 int i,j,k = 0; 6 7 for(i=0; i < 10; i++){ 8 if(i == 0){ 9 continue; 10 }else{ 11 } 12 for(j=1; j < 10; j++){ 13 k = i * j; 14 } 15 printf("\n"); 16 } 17 fprintf(fp, "%d\n", k); 18 printf("ファイルに書き込みました。\n"); 19} 20 21 22int main(void) 23{ 24 FILE *fp; 25 26 if((fp = fopen("sample.text", "a")) == NULL) { 27 printf("\aファイルをオープンできません。\n"); 28 } 29 else { 30 fclose(fp); 31 } 32 33 return(0); 34}
困っていること
コマンドラインには表示させることは出来るがファイルに書き換えれなくて困っています。
旧コード
c
1#include <stdio.h> 2 3void write_profile(FILE *fp) 4{ 5 int i,j; 6 7 for(i=0; i < 10; i++){ 8 if(i == 0){ 9 continue; 10 }else{ 11 } 12 for(j=1; j < 10; j++){ 13 fprintf(fp, "%2d\n", i*j); 14 } 15 printf("\n"); 16 } 17 printf("ファイルに書き込みました。\n"); 18} 19 20 21int main(void) 22{ 23 FILE *fp; 24 25 if((fp = fopen("sample.text", "a")) == NULL) { 26 printf("\aファイルをオープンできません。\n"); 27 } 28 else { 29 write_profile(fp); 30 fclose(fp); 31 } 32 33 return(0); 34}
旧コード
c
1#include <stdio.h> 2 3void write_profile(FILE *fp) 4{ 5 int a; 6 int b; 7 8 for (a = 1; a <= 9; a++) { 9 for (b = 1; b <= 9; b++) { 10 fprintf(fp, "%d × %d = %2d\n",a,b,a*b); 11 printf("%d x %d = %d\n", a, b, a*b); 12 } 13 } 14 15 printf("ファイルに書き込みました。\n"); 16} 17 18 19int main(void) 20{ 21 FILE *fp; 22 23 if((fp = fopen("sample.text", "a")) == NULL) { 24 printf("\aファイルをオープンできません。\n"); 25 } 26 else { 27 write_profile(fp); 28 fclose(fp); 29 } 30 31 return(0); 32}
2重ループでしたので改良しました。
それでテキストファイルに反映されたですが縦一列に表示されていて困っています。
完成
c
1#include <stdio.h> 2 3void write_profile(FILE *fp) 4{ 5 int a; 6 int b; 7 8 for (a = 1; a <= 9; a++) { 9 fprintf(fp, "\n"); 10 for (b = 1; b <= 9; b++) { 11 fprintf(fp, "%d × %d = %2d",a,b,a*b); 12 printf("%d x %d = %d", a, b, a*b); 13 } 14 } 15 16 printf("ファイルに書き込みました。\n"); 17} 18 19 20int main(void) 21{ 22 FILE *fp; 23 24 if((fp = fopen("sample.text", "a")) == NULL) { 25 printf("\aファイルをオープンできません。\n"); 26 } 27 else { 28 write_profile(fp); 29 fclose(fp); 30 } 31 32 return 0; 33}
皆様のおかげで解決することが出来ました。
ありがとうございました。
回答4件
あなたの回答
tips
プレビュー