c - 从 C 中的文件获取输入

标签 c file file-io input

大家好,我尝试将所有城市名称保存在一个数组中,但我无法获得结果,我该怎么做?

#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/

相关文章:

c - 单个内存地址可以存储多少条机器指令?

java - 仅知道目录的相对路径时如何读取目录内的文件

windows - 如何制作一个文本文件,其中包含给定扩展名的所有文件的路径?

python - 文件大小是否会影响 python 中写入的性能

c# - 如何从大文件的特定行读取到特定行

c - C线程自增安全吗?

c - 较小的股息和较大的除数的模数如何工作?

c++ - OMP 目标中对全局数组(malloc 与静态)的不同处理

java - 如何在 Java 中有效地管理文件系统上的文件?

java - 如何在 Java 中的现有文件中添加新的文本行?