69,340
社区成员
发帖
与我相关
我的任务
分享
for (int jj=0;jj<1000;jj++) {
char* filename;
filename = char(jj);
FILE *f = fopen( filename, "w" );
for (y=0; y<ny; y++) {
float *ptr = (float*)GetPtr(bufnum,y);
for (x=0; x<nx; x++, ptr++)
fprintf(f,"%*.3f ",12, *ptr);
fprintf(f,"\n");
}
}
你要打开几个文件?看你的打开文件在一个循环里,那么应该是打开多次(或打开多个文件)。如果实时保存时,只需要保存一份数据,建议先把文件打开再循环写入。另外,再次写入时将文件指针,只需要将文件指针重新指向文件开头即可。使用fseek或者rewind都可以实现将文件指针指向文件开始位置// 创建文件句柄
HANDLE hFile = ::CreateFile(lpszFileName, GENERIC_READ, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
// 创建文件映射
HANDLE hMap = ::CreateFileMapping(hFile, NULL, PAGE_READONLY | SEC_COMMIT, NULL, NULL, NULL);
// 读取映射中的内存
LPVOID lpBuffer = ::MapViewOfFile(hMap, FILE_MAP_READ, NULL, NULL, NULL);
// 好了文件的内存已经获取了,你可以随意处理了
// 释放映射内存
::UnmapViewOfFile(lpBuffer);
// 关闭文件映射
::CloseHandle(hMap);
// close file handle
::CloseHandle(hFile);