| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 740 人关注过本帖
标题:关于文件关闭的必要性
取消只看楼主 加入收藏
davidguhao
Rank: 1
来 自:广东
等 级:新手上路
帖 子:126
专家分:7
注 册:2016-7-18
结帖率:89.47%
收藏
已结贴  问题点数:6 回复次数:1 
关于文件关闭的必要性
程序代码:
// randomfile.c--使用fseek()随机访问文件

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

#define MAX 50

int main(void)
{
    FILE *fp;
    int data, count, array[MAX];
    long offset;

    // 为数组各元素赋值

    for(count = 0; count < MAX; count++)
    array[count] = count * 10;

    // 以写入模式打开二进制文件

    if ( (fp = fopen("C:\\Users\\david\\Desktop\\RANDOM.DAT", "wb") ) == NULL)
    {
        fprintf(stderr, "\nError opening file.");
        exit(1);
    }

    // 将数组写入文件, 然后关闭文件

    if ( (fwrite(array, sizeof(int), MAX, fp)) != MAX)
    {
        fprintf(stderr, "\nError writing data to file.");
        exit(1);
    }
//此处为什么一定要关闭文件?我用flush(fp)代替不行吗?#########################################################################################
    
    fclose(fp);

    // 以只读模式打开文件

    if ( ( fp = fopen("C:\\Users\\david\\Desktop\\RANDOM.DAT", "rb") ) == NULL)
    {
        fprintf(stderr, "\nError opening file.");
        exit(1);
    }

    /* 询问用户希望读取哪一个元素。
    输入该元素并显示它, 用户输入-1时退出程序。 */

    while (1)
    {
        printf("\nEnter element to read, 0-%d, -1 to quit: ", MAX-1);
        scanf("%ld", &offset);

        if (offset < 0)
        break;
        else if(offset > MAX-1)
        continue;

        // 将位置指示符移至指定元素

        if (fseek(fp, (offset*sizeof(int)), SEEK_SET) != 0)
        {
            fprintf(stderr, "\nError using fseek().");
            exit(1);
        }

        // 读入单个整数

        fread(&data, sizeof(int), 1, fp);
        printf("\nElement %ld has value %d.", offset, data);
    }

    fclose(fp);
    return(0);
}




请看程序清单中的无数个###标记处
2016-08-16 16:37
davidguhao
Rank: 1
来 自:广东
等 级:新手上路
帖 子:126
专家分:7
注 册:2016-7-18
收藏
得分:0 
回复 2楼 grmmylbs
毕竟这是个示例程序嘛哈哈
我还在慢慢学

暨南大学市场营销……
但是我有一颗计算机专业的心……
2016-08-16 21:30
快速回复:关于文件关闭的必要性
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017270 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved