那位大哥(大姐)能告诉我怎样对文件进行2进制的读和写,应该用什么函数来实现,以下是我写的程序,那位大虾帮我看看
list.h:
#include<iostream.h>//cout #include<fstream.h> //fstream #include<conio.h> //getche() #include<string.h>//strcpy #include<iomanip.h>//setw() #include<stdio.h>
#include"list.h" int main(int argc,char * *argv)//将一个文件修改后拷到另一个文件
{ char buffer[50]; ifstream myf(argv[1],ios::binary|ios::nocreate|ios::in);
/*此处可以连用两个 | 吗?书上写ios::in是ifstrean 的默认,这里是不是可以省略*/
ofstream tomyf(argv[2],ios::binary|ios::out);
if(myf.fail())//判断文件是不是存在 return -1; myf.seekg(2);//跳过s0
myf.read( buffer,50); //你说的读的函数是这样写的吗?? //比如文件中第3个字母a,第4个字母是f,能在buffer[0]中,会读成af吗? //当读取文件的时候遇到s \n 之类,比喻ss(不是0到f),会在相应的字节中写什么 // tomyf.write( buffer, 50 );
printf("%#x ",buffer[2]); //输出的是0xffffffe0,为什么会是这样? //buffer是一个字节,而0xffffffe0肯定是大于1个字节的
myf.close(); return 0; }
[此贴子已经被kai于2004-07-31 00:04:24编辑过]