-2

loadconfig 関数の値にアクセスしたいのですが、常にエラーになります:

非クラス型「int()」の「LoadConfig」のメンバー「a」のリクエスト</p>

string trainData, testData, simName;
int b, i;

int LoadConfig()
{
    int a;
    ifstream fin("kddcup.txt"); 

    while(getline(fin,trainData))
    {
        // do whatever to the string "line"
        //  cout << i + 1 << "  "<< trainData << endl;

        char *pcg = strdup(trainData.c_str());
        //pcg=(char *)malloc(42);
        trainData = strtok(pcg,",");
        i=1;
        while (pcg != NULL)
        {
            int tint=atoi(pcg);
            int tmp[43];

            //printf ("%s",pcg);

            tmp[i]=tint;

            pcg = strtok (NULL, ",");
            //printf("value = %d \n",tmp[i]);
            if (i==5)
            {
              a = tmp[i];   
              printf("value a= %d \n",a); //access this a
            }
            else if(i==6)
            {
              b=tmp[i]; 
              //printf("nilai b = %d \n",b);
            }

            i++;
        }//while pcg
    }

    //   getline(fin, trainData);
}

int main() 
{
  int r;
  LoadConfig();
  // I WANT access from here
  LoadConfig.a = new LoadConfig();
  printf("output fungsi main = %d ",r);
}
4

1 に答える 1

1

これを実現する最も簡単な方法は、関数から戻ることです。 a

int LoadConfig()
{
    int a;
    ...
    return a;
}

int main() 
{   int r;  
    r = LoadConfig();
    printf("output fungsi main = %d ",r);   
}

複数の を返したい場合int、1 つの方法は、返したいすべてのものをclassまたはにカプセル化しstruct、それを返すことです。

于 2013-06-29T09:33:09.880 に答える