我试图使用fseek()
函数将指针移动到fread()
以使fread()
获取数据并将其传递给fwrite()
n次。具体而言,我需要以n的比例放大bmp。如何使用fseek()将指针正确移动到fread()函数中? (C)
所以要做垂直放大,我试图将fread()
指针移回输入BMP的宽度,使用fseek()
。
输入和输出数据都是24位BMP。
fseek(inputPointer, lineBytes, SEEK_CUR);
要计算偏移量,我使用了sizeof(像素)*宽度的BMP * -1。
我的两个主要问题如下:
- 如何检查的一行代码指针的当前位置?
fread()
是否实际上移动了通过它的指针或者只是从指针读取所有内容到文件结尾?
2.问题:'fread'读取的字节数与您打开文件后当前指针为零的数量相同,您可以使用'fseek'设置它。例如:你的文件包含'123456789',你读4个字节你得到'1234',你再读3个字节,你会得到'567',然后你'fseek'到2,读2个字节,你会得到'34'。 –
1.问:您正在寻找['fgetpos'](http://www.cplusplus.com/reference/cstdio/fgetpos/) –
提示。在尝试按照您所描述的方式执行bmp操作之前,通过制作一些简单的测试程序来熟悉“fopen”,“fread”,“fwrite”,“fseek”和“fgetpos”。 –