【发布时间】:2017-08-26 04:40:11
【问题描述】:
现在,每当我运行它时,它都会打开一个“制作文件”选项卡,并给我一个错误提示 something wrong with line 25 from that tab。不确定它是否是我通过它的方式。
另一个问题是如果我将文件命名为“Anything”,它将显示为“A@@”
谢谢 (关闭文件只是为了测试它)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void generateFile(char,FILE);
void inputFile(int,FILE);
void printFile();
int main(int argc, char** argv) {
char fname;
int max_num;
srand(time(NULL));
printf("Enter file name \n");
scanf("%c", &fname);
printf("Enter max_num \n");
scanf("%d",&max_num);
FILE *fp;
generateFile(fname,*fp);
inputFile(max_num,*fp);
return 0;
}
void generateFile(char fname,FILE *fp){
fp = fopen( &fname, "w");
fprintf(fp,"Testing");
return;
}
void inputFile(int max_num, FILE *fp){
int i,array[25];
for(i=0;i<max_num;i++){
array[i] = rand() % 100 + 50;
fprintf(fp,"%d\n",array[i]);
fclose(fp);
}
}
【问题讨论】:
-
fname应该是char *而不是char -
查看您的函数原型,并将它们与函数的定义(实现)进行比较。论据不匹配。而且您应该永远按值传递
FILE。 -
另外,搜索并阅读关于在 c 中模拟通过引用传递。
generateFile函数不会像你希望的那样做。我建议返回FILE*。 -
好的,谢谢!生病了,然后回复你! @Someprogrammerdude