9:14 2009-7-22

[单词]
Rain poses no eclipse 日食 of heart for fans
Eager热切的 solar eclipse 日食 gazers 凝视者 beware当心
Dense clouds 密云
spoil 损坏
pent-up 被抑制的
Meteorological Bureau.气象局
due to rain and heavy clouds
Yangtze River 长江
amateur业余爱好的 stargazers天文还家
traveling long distances to witness the rare 罕见的astronomical天文学的 event.
a staff member surnamed 姓 Zhou
goggles 睁大眼睛瞪视
be sensitive to 完全过敏
domestic animals 家畜
outer atmosphere外层大气
[VC++ 孙鑫]
1.指针常量
char ch[5]="lisi";
char *const pStr=ch;表明指针本身是常量,
 lisi 指向的内容可以修改,*pStr="w"
pStr=0088:4400 指针值不可修改
必须在定义的同时进行初始化,
2.写入文件
 定义一结构体指针,FILE *fopen(批向常量的指针类型,。。)
 打开一个文件,为写入方式
 为文件写入数据,fwrite(指向将被写入数据的指针,项大小,项数量)
 size_t 无符号整形,
 项大小*项数量=符号数大小,指向file结构体一指针,
 C语言冲文件操作,采用缓冲文件系统,从内存向磁盘输入数据,
 先写到缓冲区,关闭程序时,将缓冲区数据定入磁盘中,
写入的时候,立即显示,
 fclose(pFile);
 fflush(pFile)//刷新缓冲区,让缓冲区的数据写入到文件当中, 随时写入文件,
 文件指针,指向下一个将要写入的位置处,根据对文件的操作移动指针,如果想回到开头再写入,
需要移动指针到开始,fseek(file结构体指针,初始化位置偏移量,起始位置),移到文件指针到指定位置,
起始位置:取三个值,seek_cur当前,seek_end结尾,seek_set文件的开始处,
 eg:
 FILE *pFile=fopen("1.txt","w");
 fwrite("​http://www.homehe.cn%22,1,strlen(%22http//www.homehe.cn%22),pFile​);
 //fclose(pFile);
 fseek(pFile,0,SEEK_SET);

 fwrite("ftp::",1,strlen("ftp::"),pFile);

 //fflush(pFile);

=读取,
fread (存放位置,项大不,项数量,指向file结构体指针)
读数据乱码:
 可以在写入的时候,+1,多写一个字节,
 memset(哪一个buffer,设定一字符,字符数目)用一个指定字符设备buffer,
 memset(ch,0,100),将所有数据全写为0
 获取文件长度,根据长度,存放数据,ftell()//得到文件指针得到当前位置,
先移到最后,feek(pFile,0,SEEK_END)得到位置即为长度,
乱码:文件指针移动到开始处,rewind (,);
字符数据多输入一个字节,

文件写入时常遇到的问题:
 内存中存放的都是字符的ascii码,
按二进制文件打开:
 以文本方式写入
 以二进式方式写入
二进制文件和文本文件
 文件是在计算机内存中以二进制表示的数据 在外部存储介质上的另一种存放形式。
 二进制文件:包含在ascii及扩展ascii字符中编写的数据或程序指令的文件,一般为可执行程序,图形,图象,声音等文件,
 文本文件(ASCII文件):每个字节存放的是可表示为一个字符的ASCII代码的文件,它以行为基本结构的一种信息组织和存储方式的文件,
    可读的字符,
文本方式和二进制方式
 按文本方式往文件中写入数据时,一旦遇到换行字符(ASCII 10)则转换为回车-换行(ASCII 13 10),  
   在读取文件是,一旦遇到回车-换行的组合(ASCII 13,10)则转换为换行字段(ASCII 10)
 例子中,写入的时候是3个有个换行,读的时候会应该是四个,因为写的时候,把回车10写成了两个
 当我们按二进制方式往文件中写入数据,则将数据在内在中的存储 形式原样输出到文件中
存98341
看到的98341,是五个数字字符,并不是数字98341,
0的ASCII是48
ch[0]=9+48
也可以用intoa(i,ch,10)

对文件的操作。
 =写 入文件
 类,ofstream(打开的文件名,打开方式,文件保护声明)2,3,参数可以缺省
 构造对象 ,传递文件名,write方法写数据,close关闭文件,
 须包含头文件,系统的要用《》
 =读取数据
 ifstream ifs("4.txt");
 char ch[100];
 memset(ch,0,100);
 ifs.read(ch,100);
 ifs.close();
 MessageBox(ch);

winAPI中对文件的操作函数
 1.createfile(文件名1,访问方式可或2,共享方式3,指向security arrributes结构体的指针 是否能被子进程继承4,如何创建5,文件属性6,句柄7),返回句柄:
    4.安全属性设为NULL,默认安全性,管理小组的任务成员及创建者拥有绝对访问权,在服务器系统下才有意义,在98.xp没有意义,
  7.使用标识的文件相关联的属性,generic_read打开的,如果打开的是现有文件不是创建文件,该参数忽略
  3.0表示不能被共享,
 2.writefile(1,2,3,4,5)写入数据,
  1,句柄,2,4实际写入字节数,
  5,指向overlanped结构体指针,file_flag_overlapped设置的话,是表示异步,否则是同步(如果没有写完,刚挂写,直接写完)
   操作系统利用纯种完成IO,这里可以设为NULL
 3写完后,用CloseHandle(句柄),因为文件对象是用句柄来标识的
 4,读取文件,可以用ReadFile(1,2,3,4,5)
  5,指向lpoverlapped,设为NULL,打开的时候,要指定overlappend标记
 将字符数组结尾设为0,
 
对文件操作的类,
 CFile 没有缓存的,二进制的,支持文本文件,内存文件,read,write,seek,seektobegin,seektoend,getlength,
 读取,构造对象,访问方式,moderead,得到文件长度,构造buffer,存放数据,多分配一字节,最后一个索引赋值为0,

增加打开,保存为,文件对话框
 CFileDialog(1,2,3,4,5,6)
  1,设置为真,打开对话框,设置为false,保存对话框
  2,缺省名扩展,如果没有,可加参数,
  3,初始文件名,4,允许定制对话框,5.连串的字符串对,过滤器,
  6,cwnd指针,文件对话框的父窗口,
  后五个都有缺省值,
  opeenfilename lpstrTitle
  过滤器,lpstrFilter,最后的字符串必须在最后以两个0结束,fileDlg.m_ofn.lpstrFilter="Text Files(*.txt)\0*.txt\0";
  *.txt\0 加上这个才有过滤功能,
  每个字符串后面都要加\0
  
  缺省扩展名:lpstrDefExt
  GetPathName,返回一个完整路径,
  GetFileName,返回文件名