所以我试图编写一个函数,它将打开一个不同的文件,具体取决于它何时被调用,但是当我检查文件名,我试图使用我得到一个奇怪的非acii字符,必须是一个问题与snprint。文件不可用的变量字符串名称?
char name[20];
sprintf(name,"file_part%d", 6); //likely problem here.
FILE *file=fopen(name,"r"); //this doesn't work
printf("name is : %s", name); // and this prints a weird symbol on the terminal
由于您已经要求'printf'打印'name'的*地址*的第一个字节,所以您会得到一个奇怪的非ASCII字符。试试'printf(“name is:%s \ n”,name);''%c'将一个8位值打印为一个字符。 '%s'打印一个字符串。 – lurker
对不起,应该是s,但是文件仍然没有打开,这是真正的问题,打印只是为了调试。 – dcousina
请解释*不打开*。在fopen调用之后你检查过'file'的值了吗?它是否为'NULL'?或者是什么? – lurker