网上第一本以TXT格式的VC++深入详解孙鑫的书.全文全以TXT格式,并每一章节都分了目录,清晰易读

源代码在线查看: 12.2.5 文件指针定位.txt

软件大小: 956 K
上传用户: kzdai22
关键词: TXT VC 目录
下载地址: 免注册下载 普通下载 VIP

相关代码

				12.2.5 文件指针定位
				当调用文件写入函数向文件中写入数据后,还可以再次写入其他数据。例如,可以在如例 12-3所示
				的 OnFileWrite函数中第 4行代码之后添加下面这行代码:
				食 fwrite( "欢迎访问., 1, strlen("欢迎访问"), pFile); 
				Build井运行 File程序,井单击【文件操作\写入文件】菜单项,然后打开l.txt文件,可以看到紧
				接着上次的数据写入了新数据。此时该文件的内容如图 12.4所示。 
				图 12.4连续写入数据后的文件内容
				在第二次调用 fwrite函数时,系统如何知道应该从文件中何处开始继续写入数据呢?对于 C语言的
				文件操作来说,它有一个文件指针,该指针会随时根据我们对文件的操作来移动位置,始终指向文
				件下一个将要写入的位置。当执行写入操作之后,文件指针就指向了所写数据占据位置的下一个位
				置。如果希望在写入数据后,返回到文件的开始位置处再写入数据,就需要将这个文件指针移动到
				文件开始位置,这可以利用 C语言中的 fseek函数来实现。该函数的作用是把文件指针从当前位置
				移动到指定的位置。 fseek函数声明形式如下所示: 
				int fseek( FILE *stream, long offset , int origin ); 
				可以看到. fseek函数有三个参数,各参数的含义分别如下所述。 
				. stream 
				指向 FILE结构体指针。 
				. offset 
				设定偏移量。 
				. origin 
				指定文件指针的起始位置。该参数可以取如表 12.3所示的三个值。
				表 12.3 origin参数的取值
				
				取 值 说 明  
				SEEK_CUR  从文件指针当前位置处开始  
				SEEK_END  从文件的结尾处开始  
				SEEK_SET  从文件的开始处开始 
				
				如果希望将文件指针移动到文件的开始位置处,就应该将 fseek函数的 origin参数设置为 
				SEEK_SET.并且将 offset参数设置为 0。因此,可以在已有的 OnFileWrite函数中第二次调用 
				fwrite函数(即卡述食符号所示代码)之前先将文件指针的位置移动到文件开始处,这样,第二次调
				用 fwrite函数写入的数据将出现在文件的开始处,这时的 OnFileWrite函数的代码如例 12-4所示。
				例 12-4 
				
				void CFileview : :OnFileWrite() 
				
				FILE  *pFile=fopen("l.txt" , "w" );  
				fwrite ("http: //www. sunxin . org" , 1 , strlen (..ht tp: //www.sunxin.org..).pF  
				ile) ;  
				fseek(pFile , 0, SEEK_SET);  
				fwrite("  ftp :" , l , strlen("  ftp : ") , pFile);  
				11  fwrite(  " 欢迎访问 "  , 1 , s t r 1 en ( "欢迎访问") , pFile);  
				fclose(pFile) ;  
				
				Build井运行 File程序,单击【文件操作飞写入文件】菜单项,然后打开l.txt文件,可以看到此时
				文件的内容为: "ftp://www.sunxin.org" (如图 12.5所示)。即第二次调用 fwrite函数写入文件的
				内容位于文件的开始处。这就是利用 fseek函数控制文件指针位置的实现。
				图 12.5利用 fseek函数移动文件指针后写入文件的结果 
				
							

相关资源