| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 851 人关注过本帖
标题:文件在提示不能打开的情况下依然可以写入信息??
取消只看楼主 加入收藏
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
结帖率:96.08%
收藏
已结贴  问题点数:10 回复次数:6 
文件在提示不能打开的情况下依然可以写入信息??
/*
2. 程序设计。
有5 个学生,每个学生有3 门课的成绩,从键盘输入以上数据(包括学号、姓名、3
门课成绩),计算出平均成绩。
(1)将原有数据和计算出的平均分数存放在磁盘文件stud.txt中。在向文件stud.txt
写入数据后,应检查验证stud.txt 文件中的内容是否正确。
(2)将stud.txt 文件中的学生数据,按平均分进行排序处理,将已排序的学生数据存入
一个新文件stu_sort.txt 中。
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct student
{
    int num;
    char name[20];
    float chinese;
    float math;
    float english;
}stu[5];

float avrmber[5];
int main()
{
    float avr(float a,float b,float c);
    void sort();
    void chenge(int i,int j);
    void print();

    int i;
    FILE *fp;
   
    if(!(fp=fopen("stud.txt","w")))
    {
        exit(0);
    }

    for(i=0;i<5;i++)
    {
        scanf("%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
        fprintf(fp,"%d %s %.2f %.2f %.2f %.2f",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,avr(stu[i].chinese,stu[i].math,stu[i].english));
        fprintf(fp,"\n");
    }
    fclose(fp);

    fp=fopen("stud.txt","r");
    for(i=0;i<5;i++)
    {
        fscanf(fp,"%d %s %f %f %f",&stu[i].num,&stu[i].name,&stu[i].chinese,&stu[i].math,&stu[i].english);
        fscanf(fp,"%f",&avrmber[i]);        
    }
    fclose(fp);

    //核对信息是否正确
    printf("\n\t请核对信息是否正确。\n");
    print();

    sort();
    printf("\n\n\t排序后的内容为:\n");
    print();

    if(!(fp=fopen("stu_sort.txt","w")));
    {
        printf("\n\n\t\t\t文件打开失败!\n");
        exit(0);///////////////////////////////如果这一句注释掉,提示文件打开失败,但是手动查看文件内容,发现已经写入了?这是为什么?????
    }
    for(i=0;i<5;i++)
    {
        fprintf(fp,"%d %s %.2f %.2f %.2f %.2f\n",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,avr(stu[i].chinese,stu[i].math,stu[i].english));
    }
    fclose(fp);

    printf("\n经过排序后的信息已经写入文件。\n\n");

    return 0;
}

float avr(float a,float b,float c)
{
    return (a+b+c)/3;
}

void sort()
{
    int i,j;
    float temp;

    for(i=0;i<4;i++)
    {
        for(j=i+1;j<5;j++)
        {
            if(avrmber[i]<avrmber[j])
            {
                temp=avrmber[i];
                avrmber[i]=avrmber[j];
                avrmber[j]=temp;

                chenge(i,j);
            }

        }

    }

}

void chenge(int i,int j)
{
    int tempd;
    float tempf;
    char tempc[20];

    tempd=stu[i].num;
    stu[i].num=stu[j].num;
    stu[j].num=tempd;

    strcpy(tempc,stu[i].name);
    strcpy(stu[i].name,stu[j].name);
    strcpy(stu[j].name,tempc);

    tempf=stu[i].chinese;
    stu[i].chinese=stu[j].chinese;
    stu[j].chinese=tempf;

    tempf=stu[i].math;
    stu[i].math=stu[j].math;
    stu[j].math=tempf;

    tempf=stu[i].english;
    stu[i].english=stu[j].english;
    stu[j].english=tempf;

}

void print()
{
    int i;

    for(i=0;i<5;i++)
    {
        printf("%d %s %.2f %.2f %.2f %.2f",stu[i].num,stu[i].name,stu[i].chinese,stu[i].math,stu[i].english,avrmber[i]);
        printf("\n");
    }
}


问题写在代码里。。。

搜索更多相关主题的帖子: include 程序设计 信息 键盘 include 程序设计 信息 键盘 姓名 姓名 
2013-06-23 00:48
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

不想还会在这么低级的错误上给跪了。。。。



学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 08:11
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 4楼 embed_xuel
我也是这么想的,

可是实际应用的东西感觉C写起来总是力不从心呐。

而且我现在关键不知道所谓的实际应用到底有哪些。。

以至于把我逼到学C#

.net 平台 的东西感觉还有点所谓的“实际应用”的意思

为了用C写底层,我又去学单片机,可以又感觉,还不如用汇编。。

用于是我考虑C写游戏,可是又感觉不如用VB写的快

还想过写算法,可是后来发现在matlab里做个接口比把Matlab学完都困难

你说C能用来写什么。。。实际应用的东西。。。。??

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 08:27
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 6楼 YJ_Hao
唔,这个我知道,

我的目的就是为了让它写入文件的

谢谢楼上的回答。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 08:36
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 10楼 embed_xuel
可是我该从哪里开始写起呢?

就感觉没有什么头绪和思路,

可是如果说是我还需要学习的话,又不知道该学什么。

嗯,我尽力自己写个小的操作系统如何?

其实,,我现在是一个大一的学生。。。。

自学了大二 的数据结构和C++,正在看各种算法,

目前还不知道我所学的东西除了刷一下acm这样的题之外还有什么用处。。

你所说的“实际应用”我羡慕了很久,可是迟迟不能下手

一个是我不会用linux,

自己买了鸟哥,打算这个假期看看。

另一个是自己的汇编水平不够,感觉一些东西理解的总是不够深刻

想玩单片机也不知道除了流水灯之外这个东西好干嘛

我看我也就会写各种算法,会理论分析罢了

让我实战,我真的不知道如何下手

甚至说,我想写个操作系统,都不知道需要什么知识

不管怎么说,不能再等下去了,

这个假期就从操作系统入手,写的好不好是另一回事儿,

一定要动手了。。。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 09:41
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 8楼 一明
为什么我没有加那个声明就没有报错啊

之前写代码从来都是把类似这样的声明直接写在主函数的啊

从来没有出现过问题的

你用的是什么编译器,难道这个还跟编译器有关系??

真是一个奇怪的现象。。。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 09:48
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
回复 12楼 embed_xuel
局域网聊天工具。。。。。。。。。看起来很好玩的样子,话说界面要怎么实现?感觉java是不是会更方便一些。

ftp服务器加客户端。。。。。。。。看起来好高端的样子,不知道具体是什么东西。

网络协议。。。。。。。。。。。计算机网络还没学,感觉自己很水,嗯,要学也不是难事儿,反正是早晚要学的东西,打算看看鸟哥的服务器架设和计算机网络

socket编程。。。。。。。。。。没听过,倒也可以了解一下,或许会很感兴趣

链表。。。。。。。。。。。。。这个应该还算熟悉的了

学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-06-23 09:52
快速回复:文件在提示不能打开的情况下依然可以写入信息??
数据加载中...
 
   



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

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