簡體   English   中英

如何從文本文件讀取數據

[英]How to read data from a text file

如何從文本文件讀取輸入? 輸入文件的長度為幾行,每行的格式為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++;}
                `

我認為您應該研究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 */
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM