【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18413

構造体でのコンパイル
投稿者---ツバサ(2004/11/27 10:06:14)


はじめまして。Borland C++Compilerをつかって構造体で書かれたプログラムのコンパイルをしようとしたんですが、エラーがたくさん出てコンパイルすることができませんでした。ためしにこのホームページの例文的なプログラムを使わせてもらってコンパイルしてみましたが、やはりだめでした。どのようにすればコンパイルできるんでしょうか?教えてください。
ちなみに私のOSはWindows XP SP2です。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:構造体でのコンパイル 18414 επιστημη 2004/11/27 10:48:41


No.18414

Re:構造体でのコンパイル
投稿者---επιστημη(2004/11/27 10:48:41)



構造体がなければちゃんとコンパイルされますか?
毎度おなじみ "Hello, world" はどうですか?
エラーとなる小さなコードを呈示してください。



この投稿にコメントする

削除パスワード

No.18415

Re:構造体でのコンパイル
投稿者---ツバサ(2004/11/27 10:59:59)


返信ありがとうございます!

>構造体がなければちゃんとコンパイルされますか?
>毎度おなじみ "Hello, world" はどうですか?
はい。これはコンパイルでき、実行できました。

>エラーとなる小さなコードを呈示してください。
エラーの範囲が大きいのでプログラムを全部貼り付けておきます。よろしくおねがいします。
#include <stdio.h>

struct seiseki {    /* 構造体の宣言 */
    int no;
    char name[20];
    double average;
};


int main(void)
{
    int i;
    struct seiseki seito1, seito2[20];  /* 構造体変数と構造体配列の宣言 */

    /* 構造体変数に scanf()でデータを入力 */
    scanf("%d", &seito1.no);
    scanf("%s", seito1.name);
    scanf("%lf", &seito1.average);
    
    /* 構造体配列に scanf()でデータを入力 */
    for(i = 0; i < 3; i++) {
        scanf("%d", &seito2[i].no);
        scanf("%s", seito2[i].name);
        scanf("%lf", &seito2[i].average);
    }
    /* 入力データの確認 */
    printf("no:%d name:%s average:%f\n", seito1.no, seito1.name, seito1.average);
    for(i = 0; i < 3; i++) {
        printf("no:%d name:%s average:%f\n", 
            seito2[i].no, seito2[i].name, seito2[i].average);
    }
    
    return 0;
}






この投稿にコメントする

削除パスワード

No.18416

Re:構造体でのコンパイル
投稿者---επιστημη(2004/11/27 11:25:13)


>>エラーとなる小さなコードを呈示してください。
>エラーの範囲が大きいのでプログラムを全部貼り付けておきます。よろしくおねがいします。
> ...

何の問題もなくコンパイルできましたけど。



この投稿にコメントする

削除パスワード

No.18417

Re:構造体でのコンパイル
投稿者---もぐりん(2004/11/27 13:55:17)


で、肝心のエラーメッセージは教えてくれないのでしょうか?
【掲示板ご利用上の注意】を読んでいますか?
※環境(OSとコンパイラ)や症状は具体的に詳しく!
と書いてますよね?
他の人が言っていますが、コンパイルできたソースではなくて、
エラーになったソースを提示してください。
そうしないとどこに問題があるのか誰も指摘できませんよ。


この投稿にコメントする

削除パスワード

No.18418

Re:構造体でのコンパイル
投稿者---ツバサ(2004/11/27 17:05:32)


ごめんなさい!ちょっとバイトに行っていて、返事ができませんでした。
で、これがえらーメッセージです。

■C:\Documents and Settings\翼\My Documents\C> bcc32 test.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
test.c:
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2449 test.c 4: 'seito1' のサイズが不明、あるいはゼロ(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2449 test.c 4: 'seito1' のサイズが不明、あるいはゼロ(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2449 test.c 4: 'seito2' のサイズが不明、あるいはゼロ(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )
エラー E2449 test.c 4: 'seito2' のサイズが不明、あるいはゼロ(関数 main )
エラー E2451 test.c 7: 未定義のシンボル no(関数 main )
警告 W8065 test.c 7: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2451 test.c 8: 未定義のシンボル name(関数 main )
警告 W8065 test.c 8: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2451 test.c 9: 未定義のシンボル average(関数 main )
警告 W8065 test.c 9: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2450 test.c 13: 未定義の構造体 'seiseki'(関数 main )
エラー E2453 test.c 13: 'seiseki' 型のサイズは未知あるいはゼロ(関数 main )
エラー E2451 test.c 13: 未定義のシンボル no(関数 main )
警告 W8065 test.c 13: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2450 test.c 14: 未定義の構造体 'seiseki'(関数 main )
エラー E2453 test.c 14: 'seiseki' 型のサイズは未知あるいはゼロ(関数 main )
エラー E2451 test.c 14: 未定義のシンボル name(関数 main )
警告 W8065 test.c 14: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2450 test.c 15: 未定義の構造体 'seiseki'(関数 main )
エラー E2453 test.c 15: 'seiseki' 型のサイズは未知あるいはゼロ(関数 main )
エラー E2451 test.c 15: 未定義のシンボル average(関数 main )
警告 W8065 test.c 15: プロトタイプ宣言のない関数 'scanf' の呼び出し(関数 main )
エラー E2451 test.c 18: 未定義のシンボル no(関数 main )
エラー E2451 test.c 18: 未定義のシンボル name(関数 main )
エラー E2228 test.c 18: エラーあるいは警告が多すぎる(関数 main )
*** 26 errors in Compile ***



この投稿にコメントする

削除パスワード

No.18419

Re:構造体でのコンパイル
投稿者---shu(2004/11/27 17:14:54)


多分、一番はじめの

#include <stdio.h>

の当りが、うまく記述されていないんじゃないかな。


この投稿にコメントする

削除パスワード

No.18422

Re:構造体でのコンパイル
投稿者---RiSK(2004/11/27 17:44:24)


>■C:\Documents and Settings\翼\My Documents\C> bcc32 test.c
>Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland

以前,bcc でフォルダに日本語を使うと×だって話題出ませんでしたっけ。
「翼」をtubasa などにリネームしてみてはいかがでしょうか。


この投稿にコメントする

削除パスワード

No.18423

Re:構造体でのコンパイル
投稿者---ツバサ(2004/11/27 17:49:01)


なるほど。ためしてみますね


この投稿にコメントする

削除パスワード

No.18424

Re:構造体でのコンパイル
投稿者---ツバサ(2004/11/27 17:58:07)


やってみましたが、だめでした。もしかして、ファイルの保存の仕方とかはファイルが複数ある場合は特殊なやり方になるんでしょうか?


この投稿にコメントする

削除パスワード

No.18426

Re:構造体でのコンパイル
投稿者---NykR(2004/11/27 18:39:18)


>エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )

ということは
    struct seiseki seito1, seito2[20];  /* 構造体変数と構造体配列の宣言 */

が4行目に来ているということでしょうね。
てことは1行目は
int main(void)

でしょうか。
だとすればその前に

#include <stdio.h>

struct seiseki {    /* 構造体の宣言 */
    int no;
    char name[20];
    double average;
};

が記述されているファイルをインクルードする必要があります。

# 本文を書こうとするとたまに直前に書いた文字の左側に次の文字が挿入される。
# <pre>と書こうとすると erp>< になったり。(<,>,p,r,eの順に書いたとき)
# <pre>をコピペしてpの直前に/を入れようとすると<の左側に入ったり。


この投稿にコメントする

削除パスワード

No.18427

Re:構造体でのコンパイル
投稿者---ツバサ(2004/11/27 18:51:51)


インクルードした結果無事コンパイルできました。初心者なものでヘッダーファイルをインクルードすることを忘れていました。アホな質問に付き合っていただき、ありがとうございました。


この投稿にコメントする

削除パスワード

No.18434

Re:構造体でのコンパイル
投稿者---επιστημη(2004/11/28 08:51:19)


>インクルードした結果無事コンパイルできました。初心者なものでヘッダーファイルをインクルードすることを忘れていました。

コンパイラの吐くメッセージを理解しましょう

--- エラー E2450 test.c 4: 未定義の構造体 'seiseki'(関数 main )

seisekiが未定義だと言ってくれてます。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧