如何阅读从文本文件数据(How to read data from a text file)

2019-09-17 19:40发布

我如何读取我的文本文件输入? 输入文件是几条线长,而且每行的格式为city city distance那里有两个城市以及它们之间的距离。

我已经试过几件事情来读取输入,但不幸的是那些没有工作。 我需要解析每行的各个值。 (每行包括2名城市的名字和它们之间的距离。)任何帮助,将不胜感激。

data = fopen(argv[1],"r");
while(!EOF){

while(1){
    c=fgetc(data);
    inname=(char**)malloc(sizeof(char*));
    if(c==' ')
        mode++;
    else    if(c=='\n'){mode=0;
        break;}
    else {
        switch(mode%3){
            case 0;
                for(i=0;fgetc(data)!=' ';i++){  
                    if(inname[count]!=NULL) {count++;inname=(char**)malloc(sizeof(char*));}
                    inname[count][i]=fgetc(data);}
                break;
            case 1; 
                if(inname[count]!=NULL){ count++;inname=(char**)malloc(sizeof(char*));}
                for(i=0;fgetc(data)!=' ';i++){  
                    inname[count][i]=fgetc(data);}
                break;                                      
            /*case 2;for(i=0;fgetc(data)!='\n';i++){    
                    dist[say]=atoi(str);}}}*/
                }}}count++;}
                `

Answer 1:

我想你应该考虑的fscanf读取的格式输入这个样子。

读取包含两个字符串和一个int一条线,你会是这样的:

fscanf(data, "%s %s %d", &city1, &city2, &distance);

要阅读多行,直到EOF,你的代码应该是下面的形式:

while(fscanf(data, "%s %s %d", &city1, &city2, &distance)!=EOF) {
  /* rest of your logic here */
}


文章来源: How to read data from a text file