Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C ftell和fseek读取txt文件的奇怪行为_C_File_Fseek_Ftell - Fatal编程技术网

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

C ftell和fseek读取txt文件的奇怪行为,c,file,fseek,ftell,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 < ro

我试图读取一个包含“图片”(字符矩阵)的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)
我试图通过从上到下的每一列逐字符读取文件


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

fseek(fp,I,SEEK\u SET)
将在第一次循环迭代中寻找绝对字节偏移量
0
,在第二次循环迭代中寻找偏移量
1
,在第三次循环迭代中寻找偏移量
2
,等等。我不确定您到底做错了什么,但在文本文件上使用
fseek
ftell
几乎从来都不是正确的方法。如果您能向我们展示一个您试图读取的文件格式的示例,这将很有帮助,如果您解释了您认为哪种操作会“在文件中跳转8个字符”以及原因,也会很有帮助。您正在从当前位置查找
cols-1
字符。你认为你的职位在哪里?
12345678\n

9!@#____\n

________\n

________\n

________\n