gpt4 book ai didi

C - 使用 fopen 在函数内打开文件

转载 作者:太空狗 更新时间:2023-10-29 15:03:06 27 4
gpt4 key购买 nike

我正在使用 Visual Studio 2005 (C\C++)。

我将字符串作为 char 数组传递给函数。我想打开作为参数传入的文件并使用它。我知道我的代码在一定程度上可以工作,因为如果我将文件名硬编码为第一个参数,它就可以完美地工作。

我确实注意到,如果我将值视为 watch ,则该值包括字符串文字旁边的地址。我试过将文件名作为指针传递,但它随后提示使用 __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 );

在我为文件名添加的 watch 中,出现了正确的文本,因此数据正在传递。

最佳答案

如果您使用的是 fopen(),那么您是在使用 C 而不是 C++ 进行编码。此外,这不是将数组传递给函数的方式。参数列表的语法是

void f(char arr[], unsigned int arr_size);

对于多维数组,您必须明确指定最右边维度的大小:

void f(char arr[][20], unsigned int arr_size);

也就是说,尝试将参数从 char fileName[50] 更改为 char* fileName

关于C - 使用 fopen 在函数内打开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2755663/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com