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.
答案 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;
}
您可以与主要功能进行比较。