返回一个值

时间:2013-12-13 10:57:08

标签: c

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.

2 个答案:

答案 0 :(得分:0)

我相信你没有正确传递数组。我在lerCoordenadasFich函数中看到的数组bairroCoord[ ][ COLUNAS ][ 50 ]是三维的,而在printf中你的数组是二维的,你不能在不使用指针的情况下传递数组。

显示你如何声明这个数组并调用lerCoordenadasFich然后才能找到真正的问题。

答案 1 :(得分: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;
}

您可以与主要功能进行比较。