C语言:
fprintf() 比团辩 printf() 多第一个参数,格式化后将输出到一个stream,通常是到文件,其原型如下:
int fprintf( FILE *stream, const char *format, ... )
fprintf()函数根据指定的format(格式)发送信息(参数)到由stream(流)指定的文件.因此fprintf()可以使得信息输出到指定的文件.如: fprintf( out, "Hello %s\n", name )
fopen() 原型:FILE *fopen(const char *filename,const char *mode),塌册缺fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILE指针。mode表示打开状态的字符串,"r" 以只读方式打开文件,"w" 以只写方式打开文件;"a" 以追加方式打开文件;"r+" 以读写方式打开文件,如无文件出错;"w+" 以读写方式打开文件,如无文件生成新文件
fclose()的功能就是关闭用fopen()打开的文件,原型:int fclose(FILE *fp)//成功返回0,失败返回EOF。
在程序结束时一定要记得关闭打开的文件,不然可能会造成数据丢失的情况
C++文件流:
fstream// 文件流
ifstream // 输入文件流
ofstream // 输出文件流
在fstream类中,成员函数open()实现打开文件的姿竖 *** 作,从而将数据流与文件进行关联,通过ofstream,ifstream,fstream的对象来进行对文件的读写 *** 作
通过以下代码获取文件大小,然后分配相应大小的内存,一次雹敏轿性读取文件到此内存就可以加快读取速度了。具体代码如下:#include <stdio.h>拿激
#include <stdlib.h>
int main ()
{
FILE * pFile
long lSize
char * buffer
size_t result
/* 若要一个byte不漏地读入整个文件,只能采用二进制方式打开 */
pFile = fopen ("test.txt", "rb" )
if (pFile==NULL)
{
fputs ("File error",stderr)
exit (1)
}
/* 获取文件大小 */
fseek (pFile , 0 , SEEK_END)
lSize = ftell (pFile)
rewind (pFile)
/* 分配内存存储整个文件 */
buffer = (char*) malloc (sizeof(char)*lSize)
if (buffer == NULL)
{
fputs ("Memory error",stderr)
exit (2)
}
/* 将文件拷贝到buffer中 */
result = fread (buffer,1,lSize,pFile)
if (result != lSize)
{
fputs ("Reading error",stderr)
exit (3)
}
/* 现在整个文件已经在buffer中,可由标准输出打印内容 */
printf("%s", buffer)
/* 结束演示,源肆关闭文件并释放内存 */
fclose (pFile)
free (buffer)
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)