gpt4 book ai didi

c - fopen 文件名错误

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:17 25 4
gpt4 key购买 nike

这段代码有什么错误?我只是 C 语言的新手。

#define FNAME         "c:\\users\\mahmud\\desktop\\CDs\\"
#define READ_BIN "rb"

static void open_existing_list()
{
char name[11];
FILE *fptr;

printf("\nPlease enter list name: ");
fflush(stdin);
scanf("%s", name);

fptr = fopen(FNAME name ".dat", READ_BIN);
}

这段代码用来读取用户的文件名,然后打开这个文件。

 D:\Mhmud\Mahmud\Programming\C\Videos\VTC - C  Programming\Course_Project\main.c In function `open_existing_list': 
75 D:\Mhmud\Mahmud\Programming\C\Videos\VTC - C Programming\Course_Project\main.c syntax error before "name"
D:\Mhmud\Mahmud\Programming\C\Videos\VTC - C Programming\Course_Project\Makefile.win [Build Error] [main.o] Error 1

最佳答案

#define FNAME         "c:\\users\\mahmud\\desktop\\CDs\\
^
You're missing the ending quotation mark here: ---------+

(编辑:这似乎只是一个复制粘贴错字。)

添加缺失的引号并修复此问题:

fptr = fopen(FNAME name ".dat", READ_BIN);

这只适用于字符串文字,因为连接发生在编译时。你想写这样的东西:

char fname[512];
snprintf(fname, sizeof(fname), "%s%s.dat", FNAME, name);
fptr = fopen(fname, READ_BIN);

关于c - fopen 文件名错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12302596/

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