zoukankan      html  css  js  c++  java
  • 9:14 2009722

    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,返回文件名
     
     


     


     


    作者:水木    
     
  • 相关阅读:
    LeetCode 面试题32
    LeetCode 102. 二叉树的层序遍历
    LeetCode 面试题32
    LeetCode 面试题32
    LeetCode 面试题31. 栈的压入、弹出序列
    LeetCode 946. 验证栈序列
    LeetCode 50. Pow(x, n)
    LeetCode 572. 另一个树的子树
    LeetCode 面试题50. 第一个只出现一次的字符
    LeetCode 面试题37. 序列化二叉树
  • 原文地址:https://www.cnblogs.com/hsapphire/p/1529077.html
Copyright © 2011-2022 走看看