【发布时间】:2021-12-23 14:31:42
【问题描述】:
#include<stdio.h>
#include <string.h>
#include <windows.h>
#define PATH "F:\\c\\projects\\Banking Management System\\data\\"
#define F_PWD "pwd.txt"
#define FILENAME(q1, path, f_) q1 path f_ q1
void main() {
printf("\n%s", FILENAME("\"",PATH, F_PWD));
FILE *fp=fopen(FILENAME("\"",PATH, F_PWD), "w");
if (fp==NULL){
perror("\nERROR: ");
exit(EXIT_FAILURE);
}
fprintf(fp,"%d,%s,%f\n",1,"Anil Dhar",1000.00);
fclose(fp);
}
问题
-
printf 显示正确的文件名和路径: "F:\c\projects\银行管理系统\data\pwd.txt"
-
但是,perror 显示: 错误:参数无效
-
它不会创建/写入文件,即使我删除了以下条件:
如果(fp==NULL){ perror("\n错误: "); 退出(EXIT_FAILURE); }
为什么 perror 显示“无效参数”?
【问题讨论】:
标签: c gcc codeblocks preprocessor-directive file-pointer