易截截图软件、单文件、免安装、纯绿色、仅160KB

文件处理函数如何使用?用法举例,C与MFC


C语言,有时候真不得不佩它,照理说,文件处理函数是没有什么好讲的,但对于很多C入门的人来说,似乎也是值得静心品味一番的。
C中的文件处理函数并不很多,而常用的,似乎更少。
函数不难,但并不代表文件处理也不难。似乎又要有点跑题了,我总是喜欢跑题。上几天做梦,梦到我掉到月球上去啦……
对文件的操作,无非就是打开、读写、调整读写偏移指针以及关闭,似乎么什可说的,也许事实也的确如此。还是让我们来看一段经典代码吧,这代码可是我自己写的。
FILE* fp = fopen(”test.txt”, “r”); assert(fp); //打开文件,给一个断言,这是一种好习惯
fseek(fp, 0, SEEK_END); //把偏移指针指向文件的结尾
unsigned int nlen = ftell(fp); //返回当前的偏移指针,也就是返回刚刚设定的文尾位置
fseek(fp, 0, SEEK_SET); //把读写偏移指针指向文件的开头
char* const _psz = (char*)malloc(nlen + 1);
//申请一段堆内存,这里的_psz为什么要被const修饰呢?
unsigned int size = fread(_psz, sizeof(char), nlen, fp); //读出文件的内容
_psz[size] = ‘\0′; //注意,必须要在字符串的结尾处添加结束标志,否则,哼哼!
fclose(fp); //关闭文件
…… //东搞搞,西搞搞
free(_psz); //归还堆内存
实在是太简单了是吧?是的,我正这样认为呢。
在读文件的时候,有点东西还是要说说的。因为我们都听说过,文件有两种格式,一种是文本,一种是二进制。文本文件,当然,我们不想说什么了,但二进制文件的读写,却值得一提。二进制的文件这样打开:
FILE* fp = fopen(”test.exe”, “rb”); assert(fp);
当然,可执行文件只不过是二进制文件的一个代表,在使用读写标志的时候,我们需要”b”后缀,表明打开的是二进制的文件。其实,这不是关键,而正真关键的部分是对文件的读写,这份代码有点冗余,但不写又怕给人闹出强迫症。
fseek(fp, 0, SEEK_END); //获取文件大小
size_t nlen = ftell(fp);
fseek(fp, 0, SEEK_SET);
unsigned char* const _psz = (unsigned char*)malloc(nlen + 1);
//显然,申请的内存应该是BYTE格式
fread(_psz, sizeof(unsigned char), nlen, fp); //由于是二进制的文件,我们不必再对内存做处理
fclose(fp);
通常,这种用法不常见,而更多的对二进制文件的读写,是出现在socket上。比如,我们要从网上更


相关文档:

C程序员的情书

#include <stdio.h>
#include <string.h>
int
main(void)
{
char str[] =
"3BVPSq4xF.K?=u#,"
"G'K<MrDnRr7gH%#,"
"XKf<f%G`w^=?C<#,"
"HgU_AnNR?*PDQU#,"
......

c程序设计语言习题1 9

联系1-9编写一个将输入复制到输出的程序,并将其中连续的多个空格用一个空格代替。
#include "stdio.h"
main(){
int c;
int flag;
flag=0;//是否空格标志
while ((c=getchar())!=EOF){
if (c!=32) {
putchar(c);
flag=0;
}else if(flag==0){
flag=1;
putchar(c);
}

/* ......

C/C++ 学习笔记[03].去掉C风格的注释

网上搜索了一大堆去掉/*和*/之间注释的代码,就像<The C Programming Language>练习1-23里有人说的一样
大部分都会被以下的程序broken,这个功能看起来简单,实际上很有难度.网上实现的代码,除了我找到的一个用文件指针实现的没有问题外,其余的都存在各种bug,不信的话就用以下的程序测试一下:-),当然这个程序也不够完善 ......

C/C++ 笔试、面试题目大汇总


1.求下面函数的返回值( 微软)
int func(x)
{
    int countx = 0;
    while(x)
    {
          countx ++;
          x = x&(x-1);
    ......

windows vista下的gcc环境 可用的c/c++编译器

用过vista的朋友都知道 vista不知由于什么原因很多编译软件都不能正常工作了 vs6.0全部都说有已知的兼容性问题存在
当然你可以装好几个g的vs2005
寡人一直都想自学一门计算机语言
但是苦于找不到编译器
连最简单的hellowold都不能正常编译

不多说
看我弄得
总算能用了
1.下载MinGW
http://sourceforge.net/pro ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号