ftell和fseek读取txt文件的奇怪行为

时间:2017-05-30 11:52:33

标签: c file fseek ftell

我正在尝试阅读包含“图片”(字符矩阵)的txt文件,而ftell和fseek似乎以与我在课堂和网络上教授的方式不同的方式工作。

以下是代码:

fp = fopen(filename, "r");
checkFopen(fp);

findRowsAndCols(fp, &rows, &cols);

for (i = 0; i < cols; i++)
    {
        fseek(fp, i, SEEK_SET);
        for (j = 0; j < rows; j++)
        {
            ch = fgetc(fp);
            if (ch != ' ')
            {
                //doing something with ch..
            }

            test1 = fseek(fp, (cols-1), SEEK_CUR);
            test2 = ftell(fp);
        }
    }
//cols = 9 (int)

光标仅移动3,而不是在文件中跳转8个字符 test1始终为0,而​​test2比4和5增加两倍。

在我看来,对于一个程序来说,这是一个非常奇怪的行为。我做错了什么?

编辑:

文本文件:

12345678\n

9!@#____\n

________\n

________\n

________\n

我正在尝试通过char从上到下读取每个列的文件char。

我得到的第一个字符是'1'然后是'5'然后是'\ n'

0 个答案:

没有答案