| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1028 人关注过本帖, 1 人收藏
标题:学生成绩管理系统 输出乱码
只看楼主 加入收藏
dubuzherui
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-12
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:10 
学生成绩管理系统 输出乱码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>

struct student
{
    char    chName[20];    //姓名
    int    nID;        //学号
    float    fScores[3];    //3门课的成绩
};

void main()
{
    FILE *pWrite,*pRead;
    struct student tStu,tStu2;
    char *pName = "letuknowit";
    pWrite=fopen("data.txt","w");
    if(NULL == pWrite)
    {
        return;
    }

    //初始化结构体信息,用于写入文件
    memcpy(tStu.chName,pName,20);//从源pName所指的内存地址的起始位置开始拷贝20个字节到目标tStu.chName所指的内存地址的起始位置中

    tStu.nID = 1;
    tStu.fScores[0] = 89.0;
    tStu.fScores[1] = 87.0;
    tStu.fScores[2] = 88.0;

    //写入数据到文件中
    fprintf(pWrite,"%d %s %f %f %f\n",tStu.nID,tStu.chName,tStu.fScores[0],tStu.fScores[1],tStu.fScores[2]);
    fclose(pWrite);

    pRead=fopen("data","r");
    if(NULL == pRead)
    {
        return;
    }
    //从文件中读取数据(主要下面参数中的&)
    fscanf(pRead,"%d %s %f %f %f\n",&tStu2.nID,tStu2.chName,&tStu2.fScores[0],&tStu2.fScores[1],&tStu2.fScores[2]);
    fclose(pRead);

    //打印读取的数据到屏幕上
    printf("%d %s %.lf %.lf %.lf\n",tStu2.nID,tStu2.chName,tStu2.fScores[0],tStu2.fScores[1],tStu2.fScores[2]);
}
搜索更多相关主题的帖子: return include 结构体 管理系统 信息 
2013-08-13 16:46
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:5 
我用vs2010测试你的代码  没出现任何问题

打开data文件  
只有一行 :

1 letuknowit 89.000000 87.000000 88.000000

DO IT YOURSELF !
2013-08-13 16:51
dubuzherui
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-12
收藏
得分:0 
回复 2楼 wp231957
你的结果是正确的,谢谢1
难道是我的编译器的问题?
[attach]72376[/attach]
你是这个版本吗?
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 dubuzherui 于 2013-8-13 17:13 编辑 ]
2013-08-13 16:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
pRead=fopen("data","r");
    if(NULL == pRead)
    {
         return;
    }

在这里就遭遇到退出返回  你的fopen 是什么东东

DO IT YOURSELF !
2013-08-13 16:56
dubuzherui
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-12
收藏
得分:0 
回复 4楼 wp231957
那个是打开,你在程序的根目录下面,建一个空白的data.txt文件就行
2013-08-13 16:58
dubuzherui
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2013-8-12
收藏
得分:0 
回复 4楼 wp231957
为什么我的就不行了?
2013-08-13 17:13
whxnsw
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2013-8-10
收藏
得分:5 
data文件中结果是对的,但是没有屏幕输出没有结果,明明有printf函数呀,为什么呢
2013-08-13 22:09
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
以下是引用whxnsw在2013-8-13 22:09:05的发言:

data文件中结果是对的,但是没有屏幕输出没有结果,明明有printf函数呀,为什么呢
不都和你说了吗  程序中途就退出了  printf函数没有机会呗执行

DO IT YOURSELF !
2013-08-13 22:38
幽灵X
Rank: 5Rank: 5
等 级:职业侠客
帖 子:128
专家分:328
注 册:2013-1-28
收藏
得分:5 
回复 楼主 dubuzherui
pRead=fopen("data","r");
把这句改为:pRead=fopen("data.txt","r");
我用的也是VC6.0,改完可以运行。
后缀不能忘吧
2013-08-14 01:23
小小程序猿
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:1
帖 子:755
专家分:2785
注 册:2013-7-18
收藏
得分:5 
似乎楼上的各位已经说的很清楚了……

孤独与寂寞是催化一个人迅速成长的良药,没有之一
2013-08-14 06:16
快速回复:学生成绩管理系统 输出乱码
数据加载中...
 
   



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

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