2013-12-13 146 views
1
int lerCoordenadasFich(char bairroCoord[ ][ COLUNAS ][ 50 ], int linhas, 
         char *fichIn){ 

    int contaLinhas=0; 
    int contaColunas=0; 
    FILE *fCoord; 

    if((fCoord = fopen(fichIn, "r")) == NULL) { 
     printf("Nao foi possivel abrir o ficheiro.\n"); 
     return 0; 
    } 
    else { 
     while(contaLinhas < linhas) { 
     while(contaColunas < COLUNAS) { 
       fgets(bairroCoord[contaLinhas][contaColunas], 50, fCoord); 
       contaColunas++; 
     } 
      contaLinhas++; 
      contaColunas=0; 
     } 
     fclose(fCoord); 
     return 1; 
    } 
} 

我有這個功能從文件中讀取... 的問題是我需要返回一個值

printf("%s", bairroCoord[0][1]); 

main函數,但它將打印什麼......但是它會如果在此功能中打印正確。我該如何解決這個問題?此外,它是一個要求,我返​​回1.

+3

'bairroCoord'必須是一個指針或引用(當你在C++上)。現在,你使用它的本地副本,在返回時被丟棄。 – Henno

+0

我該怎麼做?不知道是否理解...對不起 – user3092390

+0

使bairroCoord全球...最快的方式 – Deepthought

回答

0

我相信你沒有正確傳遞數組。我可以在lerCoordenadasFich函數中看到函數,你的數組bairroCoord[ ][ COLUNAS ][ 50 ]是三維的,而在printf中,你的數組是二維的,你不能在不使用指針的情況下傳遞數組。

顯示如何聲明此數組並調用lerCoordenadasFich只有那麼我們才能找到真正的問題。

0

沒有與主要功能沒有問題,因爲初級講座:

#define COLUNAS 2 

int main() 

{ 

char filename[20] = "myfile.txt"; 

char bairroCoord[10][ COLUNAS ][ 50 ]; 

lerCoordenadasFich(bairroCoord,2,filename); 
printf("%s", bairroCoord[0][1]); 
return 0; 
} 

您可以比較你的主要功能。