大家好,我尝试将所有城市名称保存在一个数组中,但我无法获得结果,我该怎么做?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(int argc, char* argv[]){
char**city1,** city2;
int distance,i=0;
city1 = (char**) malloc(sizeof(char*));
city2 = (char**) malloc(sizeof(char*));
FILE* data;
data = fopen(argv[1],"r");
//fscanf(data, "%s %s %d", city1,city2, &distance);
city1[0] = (char*)malloc(sizeof(char)*10);
city2[0] = (char*)malloc(sizeof(char)*10);
while(fscanf(data, "%s %s %d",city1[i],city2[i], &distance)!=EOF){
city1[i] = (char*)malloc(sizeof(char)*10);
city2[i] = (char*)malloc(sizeof(char)*10);
printf("%s\n%s\n%d\n", city1[i], city2[i], distance);
i++;}
fclose(data);
return 0;}
最佳答案
您需要在 fscanf()
之前使用第二对 malloc。您正在将输入写入内存的随机部分。
关于c - 从 C 中的文件获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938808/