怎样只修改文件的第一行? 我只想修改文件的第一行(比如.txt文件),其他行和原来一样。请问如何实现,给一个简单的代码,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 判断一行的标准是:0x0D、0x0A!!读入内存后首先从头找这两个标志,修改第一个以前的内容。 例子如下:HANDLE hFile = NULL;HANDLE hFileMap = NULL;PVOID pvFile = NULL; hFile = CreateFile(m_pPrintFile, GENERIC_WRITE|GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile == INVALID_HANDLE_VALUE) continue; DWORD dwFileSize = GetFileSize(hFile,NULL); hFileMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0,dwFileSize,NULL); if(hFileMap == NULL) { if(hFile != NULL) { CloseHandle(hFile); hFile = NULL; } continue; } pvFile = MapViewOfFile(hFileMap, FILE_MAP_WRITE | FILE_MAP_READ, 0,0,0); if(pvFile == NULL) { CloseHandle(hFileMap); hFileMap = NULL; CloseHandle(hFile); hFile = NULL; continue; } PSTR pchBuf = (PSTR)pvFile; pchBuf[dwFileSize / sizeof(CHAR)] = 0;你改pchBuf就改了你的文件了 用C库的方法:#include <stdio.h>#define MAXCHAR 200int main(){ char newLine[]="New line\n"; FILE* fp1; FILE* fp2; fp1=fopen("demo.txt","r"); if(fp1==NULL){ printf("\nCannot open file for read");return 1;} fp2=fopen("newfile.txt","w"); if(fp2==NULL){printf("\ncannot open file for write");return 1;} char ss[MAXCHAR]; fgets(ss,MAXCHAR-1,fp1); fprintf(fp2,"%s",newLine); char *p; for(;;) { p=fgets(ss,MAXCHAR-1,fp1); if(p==NULL) break; fprintf(fp2,"%s",p); } fclose(fp1); fclose(fp2); return 0;} Critical error detected c0000420 扫描cstring字符串出现的问题 查询数据库如何显示空数据? 画图时的虚框问题 梭哈游戏基本类设计问题 请问有没有办法得到一个lib文件提供的函数? 老革命遇到新问题 请教高手,怎样利用install shield注册ODBC数据源? 请问一个关于sql语言的问题,sql高手请帮忙! 正式开学C++感觉好爽哦 win32 模态对话框的键盘输入处理 关于dll 的小问题
HANDLE hFile = NULL;
HANDLE hFileMap = NULL;
PVOID pvFile = NULL; hFile = CreateFile(m_pPrintFile,
GENERIC_WRITE|GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if(hFile == INVALID_HANDLE_VALUE)
continue;
DWORD dwFileSize = GetFileSize(hFile,NULL);
hFileMap = CreateFileMapping(hFile,
NULL,
PAGE_READWRITE,
0,dwFileSize,NULL);
if(hFileMap == NULL)
{
if(hFile != NULL)
{
CloseHandle(hFile);
hFile = NULL;
}
continue;
}
pvFile = MapViewOfFile(hFileMap,
FILE_MAP_WRITE | FILE_MAP_READ,
0,0,0);
if(pvFile == NULL)
{
CloseHandle(hFileMap);
hFileMap = NULL;
CloseHandle(hFile);
hFile = NULL;
continue;
}
PSTR pchBuf = (PSTR)pvFile;
pchBuf[dwFileSize / sizeof(CHAR)] = 0;你改pchBuf就改了你的文件了
#define MAXCHAR 200
int main()
{
char newLine[]="New line\n";
FILE* fp1;
FILE* fp2;
fp1=fopen("demo.txt","r");
if(fp1==NULL){ printf("\nCannot open file for read");return 1;}
fp2=fopen("newfile.txt","w");
if(fp2==NULL){printf("\ncannot open file for write");return 1;}
char ss[MAXCHAR];
fgets(ss,MAXCHAR-1,fp1);
fprintf(fp2,"%s",newLine);
char *p;
for(;;)
{
p=fgets(ss,MAXCHAR-1,fp1);
if(p==NULL) break;
fprintf(fp2,"%s",p);
}
fclose(fp1);
fclose(fp2);
return 0;
}