C言語

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
qwq

C言語

#1

投稿記事 by qwq » 5年前

コード:

#include <stdio.h>
#include <stdlib.h>


struct kisyou {
    int month ;
    int day ;
    int hour ;
    double kion ;
} ;

#define MAXFILENAME 100
#define ARRAYSIZE 1000
int readfile(char filename[], struct kisyou kisyoudata[])
{
  int size;
  FILE *fp ;
  int month, day, hour ;
  double data;

  if ((fp = fopen(filename, "r")) == NULL) {
    fprintf(stderr, "Error: File Open\n") ;
    exit(1) ;
  }
  size = 0;

  while (fscanf(fp, "%d,%d,%d,%lf", &month, &day, &hour, &data) != EOF) {


     kisyoudata[size].month = month ;
     kisyoudata[size].day = day ;
     kisyoudata[size].hour = hour ;
     kisyoudata[size].kion = data ;
     size++ ;

     if(size >= ARRAYSIZE) {
       fprintf(stderr, "Error: 配列の数が不足\n");
       exit(2);
     }
  }

  fclose(fp) ;

  return size;
}



int main(void)
{
  char filename[MAXFILENAME];
  double kion[ARRAYSIZE];
  struct kisyou kisyoudata[ARRAYSIZE] ;
  int size;
  int i;

  fprintf(stderr,"データファイル名の入力:");
  scanf("%s",filename);

  size = readfile(filename, kion);

  for (i=0; i<size; i++){
    printf("%d月%d日%d時 %.1f\n",kisyoudata[i].month, kisyoudata[i].day,kisyoudata[i].hour, kisyoudata[i].kion) ;
  }
return 0;

}
コンパイルすると
r2r.c:60:19: error: expected expression
size = readfile(char filename[], struct kisyou kisyoudata[]);
^
r2r.c:60:36: error: expected expression
size = readfile(char filename[], struct kisyou kisyoudata[]);
^
r2r.c:71:3: error: expected identifier or '('
return 0;
^
r2r.c:72:1: error: extraneous closing brace ('}')
}

sizeを返すプログラムなのですが構造体のところがよくわかりません

Math

Re: C言語

#2

投稿記事 by Math » 5年前

単に引数を間違えただけじゃありませんか。
size = readfile(filename, kisyoudata); // kion);

---------エンバカデロ C (BorlandC,  BCC5.5後継)使用
https://www.google.co.jp/search?rlz=1C1 ... G2EBRKgMDA
https://www.embarcadero.com/jp?gclid=Cj ... WwQAvD_BwE

main.c

コード:

#include <stdio.h>
#include <stdlib.h>


struct kisyou {
    int month ;
    int day ;
    int hour ;
    double kion ;
} ;

#define MAXFILENAME 100
#define ARRAYSIZE 1000
int readfile(char filename[], struct kisyou kisyoudata[])
{
  int size;
  FILE *fp ;
  int month, day, hour ;
  double data;

  if ((fp = fopen(filename, "r")) == NULL) {
    fprintf(stderr, "Error: File Open\n") ;
    exit(1) ;
  }
  size = 0;

  while (fscanf(fp, "%d,%d,%d,%lf", &month, &day, &hour, &data) != EOF) {


     kisyoudata[size].month = month ;
     kisyoudata[size].day = day ;
     kisyoudata[size].hour = hour ;
     kisyoudata[size].kion = data ;
     size++ ;

     if(size >= ARRAYSIZE) {
       fprintf(stderr, "Error: 配列の数が不足\n");
       exit(2);
     }
  }

  fclose(fp) ;

  return size;
}



int main(void)
{
  char filename[MAXFILENAME];
  double kion[ARRAYSIZE];
  struct kisyou kisyoudata[ARRAYSIZE] ;
  int size;
  int i;

  fprintf(stderr,"データファイル名の入力:");
  scanf("%s",filename);  

  size = readfile(filename, kisyoudata); // kion);

  for (i=0; i<size; i++){
    printf("%d月%d日%d時 %.1f\n",kisyoudata[i].month, kisyoudata[i].day,kisyoudata[i].hour, kisyoudata[i].kion) ;
  }
return 0;

}
実行する。
http://www2.koyoen.birdview.co.jp/~abcx ... -22-a-.PNG

かずま

Re: C言語

#3

投稿記事 by かずま » 5年前

qwq さんが書きました:
5年前
コンパイルすると
r2r.c:60:19: error: expected expression
size = readfile(char filename[], struct kisyou kisyoudata[]);
^
r2r.c:60:36: error: expected expression
size = readfile(char filename[], struct kisyou kisyoudata[]);
^
元のプログラムの 60行目は
size = readfile(filename, kion);
なのに、エラーメッセージでは
size = readfile(char filename[], struct kisyou kisyoudata[]);
となっています。
qwq さんが書きました:
5年前
r2r.c:71:3: error: expected identifier or '('
return 0;
^
r2r.c:72:1: error: extraneous closing brace ('}')
}
元のプログラムは 67行しかないのに、エラーメッセージでは
71行目と 72行目にエラーがあるといっています。

エラーメッセージに対応するプログラムを提示してください。

Math

Re: C言語

#4

投稿記事 by Math » 5年前

qwq さん

ぱむぱむ, pamu とか投稿するたびに 名前を変えないで下さいね。

viewtopic.php?f=3&t=20599

の続きだということは私には分かりますが
”C言語”という件名は内容がわからないのでもっと”具体的”なものにしましょう。

返信

“C言語何でも質問掲示板” へ戻る