簡體   English   中英

使用fgets()從CSV文件打印行

[英]Printing lines from a CSV file with fgets()

當我運行以下函數時,輸出為“ Line is:”,而下一行保留為空白。 我認為我對指針和字符串的工作方式有一些誤解。 文件正在正確打開,並且正在正確讀取行,否則將打印我的錯誤消息,並且控制台中沒有警告或錯誤消息出現。 任何幫助將不勝感激!

更新的代碼:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char* argv[]){


    char filename[152];
    sprintf(filename, "%s", argv[1]);
    printf("%s", filename);

    FILE* stream = fopen(filename, "r");

    if(!stream){
        printf("\nError: File could not be read\n");
    }
    char line[1000];
    if(fgets(line, 1000, stream) == NULL){
        printf("\nError: Line could not be read\n");
    } else {
        printf("Line is:\n");
        printf("%s", line);
    }
    fclose(stream);
    return 0;
}

這是csv文件:

125779,Sofiya Aleksandrovna Velikaya,F,23,175,70,Russia,RUS,2008 Summer,2008,Summer,Beijing,Fencing,"Fencing Women's Sabre, Individual",NA
60890,Toshiaki Kitai,M,28,NA,NA,Japan,JPN,1952 Summer,1952,Summer,Helsinki,Equestrianism,"Equestrianism Men's Jumping, Individual",NA
31299,Iera Echebarra Fernndez,F,23,160,63,Spain,ESP,2016 Summer,2016,Summer,Rio de Janeiro,Rugby Sevens,Rugby Sevens Women's Rugby Sevens,NA
28351,Adalbert Dickhut,M,29,NA,NA,Germany,GER,1952 Summer,1952,Summer,Helsinki,Gymnastics,Gymnastics Men's Pommelled Horse,NA
99701,James Reid,M,24,180,70,South Africa,RSA,2016 Summer,2016,Summer,Rio de Janeiro,Cycling,"Cycling Men's Mountainbike, Cross-Country",NA
132730,Reza Mohammad Ali Yazdani,M,23,172,100,Iran,IRI,2008 Summer,2008,Summer,Beijing,Wrestling,"Wrestling Men's Light-Heavyweight, Freestyle",NA
129830,Ernst Theodor Georgsson Westerlund,M,50,NA,NA,Raili,FIN,1948 Summer,1948,Summer,London,Sailing,Sailing Mixed 6 metres,NA
95980,Julie Pomagalski,F,25,161,60,France,FRA,2006 Winter,2006,Winter,Torino,Snowboarding,Snowboarding Women's Parallel Giant Slalom,NA

通常,stdlib不刷新輸出,直到'\\ n'。

我要么做

printf("Line is: %s\n", line);

要么

fflush(stdout);

退出程序之前

暫無
暫無

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

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