0

関数の 1 つで構造体の配列を作成し、その構造体の配列を別のファイルで使用したいと考えています。私の構造はこれです:

struct competitors{
int competitorNumber;
char registeredCourse;
char name[50];
};

編集:申し訳ありませんが、間違った構造をコピーしました!!!

これが私の構造を設定する方法です:

lines = lineCount(fileName);
struct checkPoints checkPoint[lines];
sizeOfCheckPoints = lines;
chPo = fopen(fileName, mode);
if (chPo == NULL) {
    printf("Can't find the files.");
    exit(1);
} else {
    for (i = 0; i < lines; i++) {
        fscanf(chPo, "%c %d %d %d:%d\n", &checkPoint[i].dropOut, &checkPoint[i].currentPoint, &checkPoint[i].competitor, &checkPoint[i].hour, &checkPoint[i].minute);
    }
}

構造は完全に正常に設定されますが、別のファイルでどのように使用すればよいかわかりません。これは私がそれを使ってみた方法ですが、うまくいかないようです:

for(i = 0; i<sizeOfCompetitors; i++){
    if (name == competitor[i].name){
        printf("Here is comp details: %d\t%c\t%s", competitor[i].competitorNumber, competitor[i].registeredCourse, competitor[i].name);
    }else{
        printf("%s was not found", name);
    }
}

誰でもそれを手伝ってもらえますか?

4

1 に答える 1

1

両方の .c ファイルがそれを認識できるように、.h ファイルに構造体定義が必要です。

その後、あなたはそれを使うことができます!最善の方法は、最初のファイルから 2 番目のファイルに渡すことです。.h ファイルでもメソッドを宣言する必要あるでしょう。

/* second dot C */
#include "checkpoint.h"
void doSomething(struct checkPoints *points, int numPounts)
{
    int i;
    for(i = 0; i < numPoints; i++)
    {
        int currentPoint = points[i].currentpoint;
        ...
于 2012-12-13T03:12:01.457 に答える