将文件中的行保存为新字符串。 C

时间:2015-06-28 08:22:18

标签: c string scanf

我需要将文本文件中的行保存到字符串中,然后将它们插入到数据结构中,但是使用我的解决方案(我认为这非常糟糕) - 我只将单词保存到line。< / p>

    FILE * ifile = fopen("input.txt", "r");
    char line[256];

    while(fscanf(ifile, "%s\n", line) == 1) {
        //inserting "line" into data structure here - no problem with that one
   }

1 个答案:

答案 0 :(得分:3)

使用fscanf()函数几乎总是一个坏主意,因为它可能会在失败时将文件指针留在未知位置。

您应该使用fgets()来获取每一行。

#define SIZE_LINE 256
FILE *ifile = fopen ("input.txt", "r");
if (ifile != NULL) {
    while (fgets (buff, SIZE_LINE, ifile)) {
        /* //inserting "line" into data structure here */
    }
    fclose (ifile);
}