尝试在c:
中的函数内打开文件int main(int argc, char *argv[]){
// check args
FILE *input = NULL;
FILE *output = NULL;
checkArgs(argc, argv, &input, &output);
if (input != NULL){
paresInputFile(input);
}else{
printf("NULL");
}
void checkArgs(int argc, char *argv[], FILE **output, FILE **input){
// validate arguments...
*input = fopen(argv[2],"r");
return;
}
我得到一些命令行参数..我正在使用一个验证它们的函数,如果它们没问题,我会尝试打开2个文件,一个输出一个用于输入,
如何在checkArgs函数之外使用这些打开的文件, 我现在这样做的方式,它们在我的main函数中是不可访问的 - 我得到NULL,如果我尝试从checkArgs函数中访问该文件它可以正常工作
答案 0 :(得分:2)
你的函数定义了首先传递的output
和input
秒,但你在调用函数时反向传递指针。
答案 1 :(得分:1)
您刚刚将输入传递给输出,反之亦然。 更正了您的计划如下。它应该工作。
int main(int argc, char *argv[]){
// check args
FILE *input = NULL;
FILE *output = NULL;
checkArgs(argc, argv, &output,&input,);//corrected this line
if (input != NULL){
paresInputFile(input);
}else{
printf("NULL");
}
void checkArgs(int argc, char *argv[], FILE **output, FILE **input){
// validate arguments...
*input = fopen(argv[2],"r");
return;
}