| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 463 人关注过本帖
标题:求解一个文件方面的问题
只看楼主 加入收藏
he5273694
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-6-6
结帖率:0
收藏
已结贴  问题点数:10 回复次数:9 
求解一个文件方面的问题
#include<stdio.h>
#include<stdlib.h>     //为了使用exit函数;
int main()
{
    FILE *fp,*p;
    char ch;
    fp=fopen("D:\\file1.dat","r");
    p=fopen("D:\\file2.dat","w");
    if(fp==NULL)
    {
        printf("无法打开该文件\n");
        exit(0);
    }
    if(p==NULL)
    {
        printf("无法打开该文件\n");
        exit(0);
    }
    while(!feof(fp))
    {
        ch=fgetc(fp);
图片附件: 游客没有浏览图片的权限,请 登录注册

        fputc(ch,p);
        putchar(ch);
        
    }
    putchar('\n');
    fclose(fp);
    fclose(p);
    return 0;

}


为何输出中(computer and c
搜索更多相关主题的帖子: include 
2014-06-18 10:35
he5273694
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-6-6
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>     //为了使用exit函数;
int main()
{
    FILE *fp,*p;
    char ch;
    fp=fopen("D:\\file1.dat","r");
    p=fopen("D:\\file2.dat","w");
    if(fp==NULL)
    {
        printf("无法打开该文件\n");
        exit(0);
    }
    if(p==NULL)
    {
        printf("无法打开该文件\n");
        exit(0);
    }
    while(!feof(fp))
    {
        ch=fgetc(fp);
        fputc(ch,p);
        putchar(ch);
        
    }
    putchar('\n');
    fclose(fp);
    fclose(p);
    return 0;

}
file1.dat中是computer and c
2014-06-18 10:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:3 
程序代码:
#include <stdio.h>

int main()
{
    FILE *f1 = fopen( "D:\\file1.dat", "r" );
    FILE *f2 = fopen( "D:\\file2.dat", "w" );
    if( !f1 || !f2 )
    {
        printf( "%s", "无法打开该文件\n" );
        return 1;
    }

    {
        int c;
        for( ; c=fgetc(f1), c!=EOF; )
        {
            fputc( c, f2 );
            putchar( c );
        }
        putchar( '\n' );

        if( !feof(f1) )
        {
            printf( "%s", "读操作失败\n" );
            return 1;
        }
    }

    fclose( f2 );
    fclose( f1 );
    return 0;
}
2014-06-18 12:01
he5273694
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-6-6
收藏
得分:0 
回复 3 楼 rjsp
请问我的那个问题出在哪里啊
2014-06-18 12:41
njpgao
Rank: 1
等 级:新手上路
帖 子:2
专家分:3
注 册:2014-5-20
收藏
得分:3 
“C”语言的“feof()”函数和数据库中“eof()”函数的运作是完全不同的。数据库中“eof()”函数读取当前指针的位置,“C”语言的“feof()”函数返回的是最后一次“读操作的内容”。多年来把“位置和内容”相混,从而造成了对这一概念的似是而非。
那么,位置和内容到底有何不同呢?举个简单的例子,比如有人说“你走到火车的最后一节车箱”这就是位置。而如果说“请你一直向后走,摸到铁轨结束”这就是内容。也就是说用内容来判断会“多走一节”。这就是完全依赖于“while(!feof(FP)){...}”进行文件复制时,目标文档总会比源文档“多出一些”的原因。
2014-06-18 14:04
he5273694
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-6-6
收藏
得分:0 
回复 5 楼 njpgao
那么应该怎么改啊
2014-06-18 23:36
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
程序代码:
#include <Windows.h>
#include <cstdio>
#include <cstdlib>
#include <conio.h>

int main(void)
{
    const char* filename1 = "D:\\file1.dat";
    const char* filename2 = "D:\\file2.dat";
    FILE* file1;
    FILE* file2;

    errno_t error = fopen_s(&file1, filename1, "rt");
    if (error != 0)
    {
        printf_s("File %s open failure. The error code is %d\n", filename1, GetLastError());
        printf_s("Press any key to continue...");
        _getch();
        exit(EXIT_FAILURE);
    }

    error = fopen_s(&file2, filename2, "wt");
    if (error != 0)
    {
        printf_s("File %s create failure. The error code is %d\n", filename2, GetLastError());
        fclose(file1);
        printf_s("Press any key to continue...");
        _getch();
        exit(EXIT_FAILURE);
    }

    int ch;
    while ((ch = fgetc(file1)) != EOF)
    {
        fputc(ch, file2);
    }

    fclose(file2);
    fclose(file1);

    return EXIT_SUCCESS;
}

授人以渔,不授人以鱼。
2014-06-19 08:59
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:3 
回复 3 楼 rjsp
这么写也是有问题的
    if( !f1 || !f2 )
    {
        printf( "%s", "无法打开该文件\n" );
        return 1;
    }

总有那身价贱的人给作业贴回复完整的代码
2014-06-19 09:05
he5273694
Rank: 1
等 级:新手上路
帖 子:16
专家分:4
注 册:2014-6-6
收藏
得分:0 
回复 7 楼 TonyDeng
多谢
2014-06-19 10:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
“多谢”两字,我感觉基本上是照抄了去。

授人以渔,不授人以鱼。
2014-06-19 10:59
快速回复:求解一个文件方面的问题
数据加载中...
 
   



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

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