とある院試の問題がらみです.
.txtファイル
out1.txt
1**** * **** 2| | | | 3**** * **** 4| | | | 5**** * ****
から以上の文字列を読みこみ,二次元配列に格納し表示するプログラムをC言語で作成したいです.
.txtファイルは
<文字列><空白2文字><文字列><空白2文字><文字列><空白2文字><\n>
という風に並んでいます.
また,必ずしも[5][15]の配列とは限りません.
%cで1文字ずつ一次元配列に格納することはできました.
%sの二次元配列に格納する場合と,%cの二次元配列に格納する場合,それぞれどのようにプログラムすればいいのでしょうか.
以下,コードです.
C
1#include<stdio.h> 2#define SIZE 255 3 4typedef struct read_templete{ 5 char x1; 6 char x2; 7 char x3; 8 9}Read; 10 11int main(void){ 12 13 FILE *fp; 14 15 int x, i, j; 16 Read read[5]; 17 18 if((fp = fopen("out1.txt","r")) == NULL){ 19 printf("error\n"); 20 exit(1); 21 } 22 else{ 23 j = 0; 24 while( 25 fscanf(fp, "%s %s %s ", &read[j].x1, &read[j].x2, &read[j].x3) != EOF){ 26 j++; 27 } 28 } 29 30 fclose(fp); 31 32 for(i = 0; i < j;i++){ 33 printf("%s %s %s \n",read[i].x1, read[i].x2, read[i].x3); 34 } 35 36 37 return 0; 38 39} 40
コンパイルしてみたところ,セグメンテーション違反となりました.
全く初心者レベルの質問かもしれませんが,何卒ご教授お願いいたします.

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。