C读取文件

转载自:http://zhidao.baidu.com/question/212263297.html

如何将一个位置格式的TXT文件的所有内容读入一个字符串。。。。。用C语言实现。。。。这个字符串如何动态申请。。。。


下面是一个完整的实例, 楼主参考:

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char* pchBuf = NULL;
    int  nLen = 0;
    
    // 打开文件~
    const char* pchPath = "/Users/user/Desktop/123.txt";
    FILE *pF  = fopen(pchPath, "r");
    
    // 文件指针移到文件尾~
    fseek(pF, 0, SEEK_END);
    
    // 得到当前指针位置, 即是文件的长度~
    nLen = ftell(pF);
    
    // 文件指针恢复到文件头位置~
    rewind(pF);
    
    // 动态申请空间, 为保存字符串结尾标志 \0, 多申请一个字符的空间~
    pchBuf = (char*) malloc(sizeof(char)*nLen+1);
    if(!pchBuf) {  
        perror("内存不够!\n");
        exit(0);
    }  
    
    // 读取文件内容~
    // 读取的长度和源文件长度有可能有出入,这里自动调整 nLen~
    nLen = fread(pchBuf, sizeof(char), nLen, pF);
    
    // 添加字符串结尾标志~
    pchBuf[nLen] = '\0';
    
    // 把读取的内容输出到屏幕看看~
    printf("%s\n", pchBuf);
    
    // 关闭文件~
    fclose(pF);
    
    // 释放空间~
    free(pchBuf);
    
    return 0;
}


posted on 2012-08-12 09:32  yang3wei  阅读(230)  评论(0编辑  收藏  举报