• 締切済み

ファイル操作を教えてください

#include <stdio.h> #include <stdlib.h> /* (1)構造体の型枠の宣言 */ struct seiseki { int no[50]; int A[50]; int B[50]; }a; 構造体をこう定義した時に 1 2 3 1 2 3 1 2 3 と3列に書き込まれているtxtファイルがあったときに 1列目を a.no 2列目を a.A 3列目を a.B に入れるプログラムを教えてください

みんなの回答

  • wormhole
  • ベストアンサー率28% (1622/5659)
回答No.2

>1 2 3 >1 2 3 >1 2 3 全角文字(私的にはこういうケースでの全角文字という言葉は好きじゃないんだけど)を扱いたいということですか?

全文を見る
すると、全ての回答が全文表示されます。
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

http://okwave.jp/qa/q7616455.html の続きですよね? 回答では納得できませんか?

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 構造体について

    凄く初歩的な質問で申し訳ありませんが… 入門書の構造体のところで 以下のようなプログラムの例がありました。 #include <stdio.h> struct seiseki { /* 構造体の宣言 */ int no; char name[20]; double average; }; int main(void) { int i; struct seiseki seito1, seito2[20]; /* 構造体変数と構造体配列の宣言 */ >char name[20] というのは、NAMEの領域を20文字 確保すると言うことですよね? >struct seiseki seito1, seito2[20] ここの箇所が分からないのですが seito2[20]の20というのは どうして20なのですか? NAMEだけではないので もっと大きな数字になるような気がするのですが… またseito1の方は どうして数字が何もないんですか? 考え違いをしているところを ご指摘して頂ければ幸いです。

  • fwrite文について

    char型で宣言した配列の方はうまくいきましたが、構造体を用いたfwrite文がうまく出力されません。 どうしてでしょうか? #include <stdio.h> #include <string.h> #include <stdlib.h> struct ll{ char name[20]; int ten[3]; }list[3] = { {"aaa", 11}, {"bbb",22}, {"ccc",33} }; FILE *fpbin, *fpcsv; /*FILE構造体(グローバル変数)*/ void main(void) { char i[] = {'a','b'}; fpbin = fopen("data.txt","w"); //fwrite(&i,sizeof(char),2,fpbin); fwrite(&list[0].name,sizeof(struct ll),2,fpbin); fclose(fpbin); }

  • 直接ファイルへ出力できるものでしょうか?

    構造体 struct{int i,int m}i を用意しています #include <stdio.h> typedef struct{ int i[6]; /*学生番号*/ int m[6]; /*身長*/ }stu int main(void){ FILE *fp; stu s; fp("text.txt","w"); while(gets(s)!=NULL){ fputs(s,fp); } fclose(fp); } これを動かそうと思ってもダメなのは自分でもよくわかります。 構造体へダイレクトにいれてファイル出力というのは無謀なのでしょうか? 一度構造体にきちんと取り込んだ後で改めてファイルへ出力するのが正式なのでしょうか? 教えてください

  • 構造体でのファイル操作

    1 2 3 1 2 3 1 2 3 1 2 3 みたいに書き込まれた txtデータを構造体でよみこみたいのですけどうまくいきません プログラムはこんなかんじです int i=0; FILE *fp; fp = fopen("Data.txt","r"); while (fscanf(fp, "%d,%d,%d",a.no[i],a.A[i],a.B[i] ) != EOF){ i++; } fclose(fp); a.noが1列目で a.Aが2列目で a.Bが3列目です Debug assertion failed  と表示されます どうしてでしょうか?

  • ファイル操作(構造体)のエラー?なんでしょうか?

    ファイル操作(構造体)のエラー?なんでしょうか? テキストファイルtestdata.txtから読み込んで渡したいのですが 下記の画像のようなエラーがでます。 プログラムの問題ですか?パソコンのほかの問題ですか? DOSのWindowがまずいのでしょうか? testdata.txtの中身は半角英数字の羅列です。 例 123 456 789 AAA BBB #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct data{ char *name; int a; int h; struct data *next; }LIST; int main(){ int i; int j; LIST *pt; FILE *fp; char *readLine; if((fp=fopen("testdata.txt","r"))==NULL){ printf("file error\n"); exit(1); } pt=(LIST *)calloc(4,sizeof(LIST)); i=0; j=0; while(fgets(readLine,256,fp)!=NULL){ if(i==0){ (pt+j)->name=(char *)malloc(strlen(readLine)+1); (pt+j)->name=readLine; printf("%s",(pt+j)->name); i++; }else if(i==1){ (pt+j)->a=atoi(readLine); printf("%d",(pt+j)->a); i++; }else if(i==2){ (pt+j)->h=atoi(readLine); printf("%d",(pt+j)->h); i=0; j++; } } free(pt); return 0; } コンパイルは無事終了してます。

  • fpus:ファイル操作

    Cを勉強している初心者です。 このソースはコンパイルは通るのですが、 エラーがでてしまいます。 いろいろと調べてみたりもしたのですが わかりませんでした。 なぜなのでしょうか? #include <stdio.h> #include <string.h> struct student{ char name[20]; }; int main(void) { struct student s[1]; int i; int j = 1; FILE *fp; strcpy(s[0].name,"taro"); strcpy(s[1].name,"jiro"); if((fp = fopen("test.txt","w+")) == NULL) { printf("ファイルを開けませんでした\n"); return (-1); } for(i=0;i<=j;i++) { fputs(s[i].name,fp); } fclose(fp); return (0); }

  • fputs:ファイル操作

    Cを勉強している初心者です。 このソースはコンパイルは通るのですが、 エラーがでてしまいます。 いろいろと調べてみたりもしたのですが わかりませんでした。 なぜなのでしょうか? #include <stdio.h> #include <string.h> struct student{ char name[20]; }; int main(void) { struct student s[1]; int i; int j = 1; FILE *fp; strcpy(s[0].name,"taro"); strcpy(s[1].name,"jiro"); if((fp = fopen("test.txt","w+")) == NULL) { printf("ファイルを開けませんでした\n"); return (-1); } for(i=0;i<=j;i++) { fputs(s[i].name,fp); } fclose(fp); return (0); }

  • 構造体型のポインタ変数を含む構造体

    struct seiseki_tag { Int32 math ; Int32 english ; Int32 science; } ; typedef struct seiseki_tag SEISEKI ; struct personal_tag { Char name ; Int32 num ; SEISEKI *sptr } : typedef struct personal_tag PERSONAL ; struct info_tag { PERSONAL person_info ; } ; typedef struct info_tag INFO ; たとえば、上記のように3つの構造体があり、PERSONAL構造体のメンバーに SEISEKI構造体の型を持つポインタ変数が含まれているような場合で、下記のように INFO型のポインタ変数からSEISEKI構造体のメンバーを参照する方法を教えてください。 PERSONAL構造体メンバーのnameやnumは INFO *info ; info->person_info.name ; info->person_info.num ; のように参照すると思いますが、sptrが示すSEISEKI構造体のメンバーへの アクセスができません。下記のように参照を試みたのですがコンパイルは 通るのですが、実際に参照できていませんでした。 INFO *info ; SEISEKI *seiseki ; seiseki = info->person_info.sptr ; seiseki->math ; 判りにくい説明で申し訳ありませんが、どなたか教えていただければと思います。 よろしくお願いいたします。

  • 構造体の配列を関数に渡すには

    構造体の配列を関数の引数として渡そうとすると エラーになってしまいます ネットで調べてもいまいちわからなかったので ここで質問させてもらいます #include<stdio.h> struct A{   ・    ・    ・ }; void func(struct A *p); int main(void) { struct A x[3][4] = {     ・     ・     ・ }; func(x); return 0; } void func(struct A *p){     ・     ・    ・ } どうすれば渡すことができるのでしょうか? どなたか助言お願いします。

  • ファイルから読み込んだデータを構造体に格納できますか?

    1レコード19バイトのファイルを 読み込む処理を行っています。 地区名10バイト 県名8バイト 改行1バイト このデータをdouken(構造体)に格納したいのですが >while (fgets(dou,19,fp) != NULL){ で、エラーになってしまいます。 どのようにしたら ファイルから読み込んだデータを 構造体に格納できますか? #include<stdio.h> #include <stdlib.h> struct douken { char tiku[10]; char ken[8]; } main(void){ FILE *fp; struct douken dou[100]; int i; fp = fopen("ex3.fil","rb"); if ( fp == 0 ){ printf("can't open\n"); exit(1); } while (fgets(dou,19,fp) != NULL){ ・ ・ ・