当达到EOF时,fscanf()不会存储文件的最后一行

时间:2017-09-28 03:39:25

标签: c multidimensional-array scanf stdin

我正在使用stdin和fscanf()读取文件但是一旦达到EOF,它就不会像对待其他文件那样将单词存储到数组中。所有的单词,但最后一个单词存入我的二维数组。也许用fgets()或getchar()有更好的方法,但我不知道该怎么做。

我读的文件看起来像这样

修正案

诉讼

正义

依此类推(线条在那里,因为它们是单独的线条而且我不知道更好的格式化方式)

我的代码是这个

char c;
int column = 0;
int row = 0;

do
{
   word[row][column] = c;
   column++;

while(fscanf(stdin, "%c", &c)==1 && c != '\n')
{
   word[row][column] = c;
   column++;
}
row++;
column = 0;
}while(fscanf(stdin, "%c", &c) != EOF);

//here i'm trying to store the last line separately but it doesn't work
while(fscanf(stdin, "%c", &c)==1)
{
   word[row][column] = c;
   column++;
}

0 个答案:

没有答案