做响应网站的素材网站,网站搭建php打不开,打开网站是空白页面,做网站维护要学些什么·这周一直在完成一个任务#xff0c;就是将训练出的多个model写成一个model。其中我们使用了c语言的读写方法#xff0c;搞了一星期#xff0c; 挖了很多坑#xff0c;最终都铲平了。下面列举出若干有用的知识。 1.fwrite,fread VS fprintf,fscanf的区别 fwrite,fread 读写…这周一直在完成一个任务就是将训练出的多个model写成一个model。其中我们使用了c语言的读写方法搞了一星期 挖了很多坑最终都铲平了。下面列举出若干有用的知识。 1.fwrite,fread VS fprintf,fscanf的区别 fwrite,fread 读写的时候我发现不管使用FILE* pFile fopen(“myfile.bin”, “wb”);无论是使用“wb”还是“w”,最后写出的数据均是乱码所以内容是不可读的。但是安全性好我们后来就使用fwrite,fread 读写model.而 fprintf,fscanf是可视的。 2. 使用fwrite,fread 读写文件的时候切记注意变量的格式举个例子 #include stdio.h
#include string.hint main()
{FILE * pFile;pFile fopen(myfile.bin, wb);double a 5.1615665161;fwrite(a, sizeof(float), 1, pFile);rewind(pFile);pFile fopen(myfile.bin, rb);double b ;fread(b, sizeof(float), 1, pFile);return 0;
}
我读入一个double类型数据但是想以float型写入文件然后再以float读入发现读出的数据b是错的。原因在于一个double类型读入sizeof(float)个字节会发生截断所以数据是错误的。应该改为
#include stdio.h
#include string.hint main()
{FILE * pFile;pFile fopen(myfile.bin, wb);double a 5.1615665161;float atemp a;fwrite(atemp, sizeof(float), 1, pFile);rewind(pFile);pFile fopen(myfile.bin, rb);double b ;float btemp;fread(btemp, sizeof(float), 1, pFile);b btemp;return 0;
}
也就是必须坚持以原数据的原有格式去读写。 3. 多次打开文件写数据的方式 一般我们使用
FILE *fp NULL;
fp fopen(saved_file_name.c_str(), ab);
a即附加的意思。读的时候如果我们先读入部分数据再将文件关掉然后再打开文件继续读下一行的数据可以使用 long offset ftell(fp); 先记下之前读文本的指针位置偏移量然后下一次打卡文件将文件指针从头偏移offset量即可。
FILE *fp fopen(forest_file_name.c_str(), rb);
fseek(fp, offset, 0);