我有以下代码,它从命令行读取文件名并打开此文件:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv){
FILE *datei;
char filename[255];
//filename = argv[1];
//datei=fopen(filename, "r");
datei=fopen(argv[1], "r");
if(datei != NULL)
printf("File opened");
else{
printf("Fehler beim öffnen von %s\n", filename);
return EXIT_FAILURE;
}
return EXIT_SUCCESS;
}
这个例子能够工作,但是我想从命令行写入字符串到字符数组,并将该字符数组传递给fopen(),但我得到了编译器错误
Error: assignment to expression with array type filename = argv[1];
。这个错误意味着什么?我该如何解决这个问题?
strcpy(filename, argv[1]);
。 - R Sahustrncpy(filename, argv[1], sizeof filename);
将argv[1]
的内容复制到filename
中,复制长度不超过filename
的大小。 - harper