C fopen动态文件名

C fopen动态文件名,c,fopen,C,Fopen,我使用的是mingw32,我想在使用fprint创建文件时创建动态文件名。我正在从数组中读取数据,我想动态创建字符串用作文件名。我认为我能够使用sprintf创建字符串,并将包含字符串的char数组传递给fopen;然而,这似乎不起作用。这就是我希望我必须要做的: unsigned char filename[64]; serial_write_slow("mV\r"); serial_read(buffer, sizeof(buffer), &len); tokenize_string

我使用的是mingw32,我想在使用fprint创建文件时创建动态文件名。我正在从数组中读取数据,我想动态创建字符串用作文件名。我认为我能够使用sprintf创建字符串,并将包含字符串的char数组传递给fopen;然而,这似乎不起作用。这就是我希望我必须要做的:

unsigned char filename[64];
serial_write_slow("mV\r");
serial_read(buffer, sizeof(buffer), &len);
tokenize_string(buffer, "\n");

sprintf(filename,"%s.csv",token_buf[0]);

FILE *myfile;
myfile = fopen(filename,"w");

mV是微控制器获取固件编号的命令,我正在读取数据并将其解析到数组中,torenise_string返回一个包含我要放入字符串中的数据的字符数组。我不知道fopen是否能做到这一点

您可能应该使用snprintf,它进行边界检查。什么是令牌?您是否尝试过printfFilename=%s\n,filename;为了确保您期望的文件名实际上就是您正在使用的文件名?snprintf正在给我一个inter-from指针,但没有强制转换警告。明白了,字符串包含一个不能用作文件名的字符