我正在使用Visual Studio 2005 (C\C++)。
我将一个字符串作为char数组传递给函数。我想打开作为参数传递的文件并使用它。我知道我的代码在某种程度上是有效的,因为如果我将文件名硬编码为第一个参数,它就可以完美地工作。
我注意到,如果我将值作为监视器查看,该值包括字符串文字旁边的地址。我尝试将文件名作为指针传递,但它会抱怨与__w64的类型转换。正如我之前所说,用"filename.txt"代替fileName时它可以正常工作。我被难住了。
void read(char fileName[50],int destArray[MAX_R][MAX_C],int demSize[2])
{
int rows=0;
int cols=0;
int row=0;
int col=0;
FILE * f = fopen(fileName,"r");
...
调用函数的代码如下:
char in_filename[50];
int dem[MAX_R][MAX_C];
int dem_size[2];
get_user_input( in_filename);
read(in_filename, dem, dem_size );
在我的手表中,文件名的正确文本出现了,因此数据已经传递过来了。