1.读取文件路径时,是双斜杠,如果是单斜杠,会出现找不到目标文件的情况
fid = fopen("E:\\my_c\\cloud_detection\\cloud_detection\\cloud\\gray_13.txt", "rb");
2.数组使用前要进行内存分配和初始化,一定要初始化,不然有可能出现读取位置XXX时发生访问冲突的问题
labelmap = (int *)malloc(sizeof(int)*height*width);
memset(labelmap, 0, sizeof(int)*height*width);
3.利用memset进行初始化时,初始化的数目参数是指的一个字节的字数,如果该内存每个单元占四个字节,则需要乘以四,如2中图所示。另外可参考博客:
https://blog.csdn.net/yexiaohhjk/article/details/52717934
4.使用malloc memset等函数时,要包含 #include<memrory>
5.c语言中读写二进制文件用到的一些函数:
fopen:打开一个二进制文件
FILE* fid;
fid = fopen("E:\\my_c\\cloud_detection\\cloud_detection\\cloud\\gray_13.txt", "rb");
if (fid == NULL)
exit(1);
fseek:将文件指针放到一个指定的位置
int fseek(FILE *fid, long offset, int fromwhere);
fseek(fid, 0, SEEK_END);//将文件指针定移动到文件末尾
fseek(fid,50,SEEK_SET);//将文件指针移到离文件头50个字节的地方
参考博客:https://www.cnblogs.com/xingyunblog/p/3675568.html
fread和fwrite分别从二进制文件中读数据或写数据
(1)size_t fread ( void * ptr, size_t size, size_t count, FILE * fid );
其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;fid:文件指针
函数返回读取数据的个数。
(2)size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * fid );
其中,ptr:指向保存数据的指针;size:每个数据类型的大小;count:数据的个数;fid:文件指针
函数返回写入数据的个数。
参考博客:https://www.cnblogs.com/xudong-bupt/p/3478297.html
ftell:该函数用于得到文件位置指针相对于文件首的偏移字节数
rewind: 将文件位置指针重新指向一个流(数据流/文件)的开头
6.C语言常用的头文件介绍
参考博客:https://blog.csdn.net/sinat_23338865/article/details/52150654
7.main函数的正确调用形式:
int main(int argc, char*argv[])
int main()
main函数需要返回int型数据
void main()有的编译器可以通过,有的编译器不能通过。