我正在尝试读取一个包含“图片”(字符矩阵)的 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)
而不是在文件中跳转 8 个字符,光标仅移动 3 test1 始终为 0,而 test2 增加了两倍 4 比 5 和 6..
在我看来,这对于一个程序来说是一个非常奇怪的行为。我究竟做错了什么?
编辑:
文本文件:
12345678\n
9!@#____\n
________\n
________\n
________\n
我正在尝试通过从上到下遍历每一列的字符来读取文件字符。
我得到的第一个字符是 '1' 然后是 '5' 然后是 '\n'