对于C语言 其实它的编程思想和语法都和java有很大区别的 我之前学的就是C++ 我来回答你得问题,希望对你有帮助!
对于查看二进制文件 有以下几个语法
“rb”
只读打开一个二进制文件,只允许读数据
“wb”
只写打开或建立一个二进制文件,只允许写数据
“ab”
追加打开一个二进制文件,并在文件末尾写数据 “rb+”
读写打开一个二进制文件,允许读和写
“wb+”
读写打开或建立一个二进制文件,允许读和写
“ab+”
读写打开一个二进制文件,允许读,或在文件末追加数据
在打开一个文件时,如果出错,fopen将返回一个空指针值NULL。在程序中可以用这一信息来判别是否完成打开文件的工作,并作相应的处理。因此常用以下程序段打开文件:
f((fp=fopen("c:\\hzk16","rb")==NULL)
{
printf("\nerror on open c:\\hzk16 file!");
getch();
exit(1);
}
这段程序的意义是,如果返回的指针为空,表示不能打开C盘根目录下的hzk16文件,则给出提示信息“error on open c:\ hzk16 file!”,下一行getch()的功能是从键盘输入一个字符,但不在屏幕上显示。在这里,该行的作用是等待,只有当用户从键盘敲任一lose函数返回值为0。如返回非零值则表示有错误发生。
为了方便你理解 我给你举出一个例子:
void read_write_file()
{
const int MAXLEN =1024;
FILE * outfile, *infile;
outfile = fopen("F:\\training video\\_back\\2.wmv", "wb" );
infile = fopen("F:\\training video\\_back\\1.wmv", "rb");
unsigned char buf[MAXLEN];
if( outfile == NULL || infile == NULL )
{
// printf(%s, %s,argv[1],not exit\n);
exit(1);
}
int rc;
while( (rc = fread(buf,sizeof(unsigned char), MAXLEN,infile)) != 0 )
{
fwrite( buf, sizeof( unsigned char ), rc, outfile );
}
fclose(infile); fclose(outfile); cout<<"read,write success"<<endl;
} |