我已经更改了代码。我执行以下操作:
- 打开终端
- 编写gcc program.c -o program1
- ./程序1
- 我收到错误!
我得出结论,没有文件正在创建,指针 fptr==0
这就是我收到该错误的原因。此外,当我在 ./program1(如 ./program 1 2)之后输入更多字符串或整数时,显示“错误!”再次。这是代码:
#include <stdio.h>
int main(int argc, char *argv[]){
int n;
FILE *fptr;
fptr=fopen(argv[0],"w");
if(fptr==NULL){
printf("Error!");
exit(1);
}
printf("Enter n: ");
scanf("%d",&n);
fprintf(fptr,"%d",n);
fclose(fptr);
return 0;
}
最佳答案
argv[0]
是程序名,如果传递文件路径,应该使用argv[1]
尝试像这样启动:
$ ./program mypath/file.name
argv[0]
是程序,argv[1]
是mypatch/file.name
关于c++ - 更改代码,以便从命令行输入您要编写的文件的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34372884/