| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1524 人关注过本帖
标题:求大佬改正寻找一下错误,
只看楼主 加入收藏
q3064219762
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2020-5-2
结帖率:100%
收藏
已结贴  问题点数:16 回复次数:7 
求大佬改正寻找一下错误,
#include<process.h>
#include<string>
#include<stdio.h>
#include<stdlib.h>
#define _CRT_SECURE_NO_VARNINGS
void mulu()
{
    int* a;
    a = (int*)malloc(sizeof(int));
    FILE* fp;
    fp=fopen( "1232.txt", "a+");
    if (fp == NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
    fscanf(fp, "%d", a);
    printf("%d", *a);
    free(a);
    fclose(fp);
}
///////////////////////////////////////////
////            成绩输入
///////////////////////////////////////////
 void shuru()
{
    int y;
    y = NULL;
    FILE *fp;
    fp=fopen("1232.txt", "a+");
    if (fp ==NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
    printf("\n\t输入分数:");
    scanf_s("%d", &y);
    fprintf(fp, "%c", y);
    fclose(fp);
    printf("\n\t已保存\n");
}
//////////////////////////////////////////////
//                进入密码保护
/////////////////////////////////////////////
void mima()
{
    unsigned long a;
    int c;
    for (c = 1; c == 1;)
    {
        printf("本程序由漠情大神创建,要密码找漠情大神\n");            //用于权利保护和装逼
        printf("输入密码:");
        scanf("%iu", &a);
        if (a == 3064219762)
        {
            printf("进入系统\n");
            break;
        }
        else
        {

            printf("密码错误\n");
        }
    }
}
////////////////////////////////////////////
//                    界面
////////////////////////////////////////////
int jiemian()
{
    int a;
        printf("\t\t请输入功能序号:");                //提示用户功能信息
        printf("\n\n\t1:成绩输入");
        printf("\n\t2:与上次作比较(任务)");
        printf("\n\t3:成绩目录");
        printf("\n\t按任意键退出程序");
        printf("\n\t\t功能序号为:");
        scanf("%d", &a);
    return a;
}


int main()
{
    mima();
    int a;
    while (1)
    {
        a = jiemian();            //取用户要执行的功能的序号
        switch (a)
        {
        case 1:                    //成绩输入
            shuru();
            continue;
        case 2:                    //与上次作比较(任务)

            continue;
        case 3:                    //成绩目录
            mulu();
            continue;
        default:                //用于结束循环(退出程序)
            break;
        }
        break;
    }
    return 0;
}
运行后:
本程序由漠情大神创建,要密码找漠情大神
输入密码:3064219762
进入系统
                请输入功能序号:

        1:成绩输入
        2:与上次作比较(任务)
        3:成绩目录
        按任意键退出程序
                功能序号为:1(我输入的)

        输入分数:39

        已保存
                请输入功能序号:

        1:成绩输入
        2:与上次作比较(任务)
        3:成绩目录
        按任意键退出程序
                功能序号为:3(我输入的)                            ///////////
-842150451    ////////////////////////////////////////////////////////问题所在//////////////////////////////////////////////
              请输入功能序号:                                       //////////

        1:成绩输入
        2:与上次作比较(任务)
        3:成绩目录
        按任意键退出程序
                功能序号为:
搜索更多相关主题的帖子: 序号 成绩 输入 printf int 
2020-05-02 11:11
q3064219762
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2020-5-2
收藏
得分:0 
求大佬帮我一下,我实在找不出错误,技术有限。
2020-05-02 21:21
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1701
专家分:4334
注 册:2007-12-27
收藏
得分:5 
你好好地输入了数据以后为啥要用%c存进文件呢?

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-02 21:55
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:11 
输入输出函数修改如下:
程序代码:
void mulu()
{
    int aa;
    FILE* fp;
    fp = fopen("1232.txt", "a+");
    if (fp == NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
    while (fscanf(fp, "%d", &aa)!=EOF)
        printf("%d ", aa);
    printf("\n");
    fclose(fp);
}
///////////////////////////////////////////
////            成绩输入
///////////////////////////////////////////
void shuru()
{
    int y;
    y = NULL;
    FILE *fp;
    fp = fopen("1232.txt", "a+");
    if (fp == NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
    printf("\n\t输入分数:");
    scanf_s("%d", &y);
    fprintf(fp, "%d ", y);
    fclose(fp);
    printf("\n\t已保存\n");
}
//////////////////////////////////////////////
//                进入密码保护
/////////////////////////////////////////////

能编个毛线衣吗?
2020-05-02 22:00
q3064219762
Rank: 1
等 级:新手上路
帖 子:12
专家分:1
注 册:2020-5-2
收藏
得分:0 
回复 3楼 forever74
谢谢
2020-05-03 08:16
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:0 
以下是引用wmf2014在2020-5-2 22:00:51的发言:

输入输出函数修改如下:
void mulu()
{
    int aa;
    FILE* fp;
    fp = fopen("1232.txt", "a+");
    if (fp == NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
    while (fscanf(fp, "%d", &aa)!=EOF)
        printf("%d ", aa);
    printf("\n");
    fclose(fp);
}

a+打开 读写位置是文件结尾
fscanf 直接 eof 了

https://zh.
2020-05-04 01:08
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 6楼 lin5161678
最初是r模式,调试时发现当文件不存在时会出错,改成楼主的原a+模式,读出正常。百度也只说a+模式可读写创建文件,写是在文件末尾,没说读文件。
为此又专门对r+模式打开文件做了实验:
1,仅仅读,是从文件开头读。
2,仅仅写,是从文件末尾写
3,用“读一个、写一个、读所有”的顺序则第一个读正常,后面的写读不正常,表现为没写数据,没读数据
4,用“写一个、读所有”的顺序则都不正常,表现为数据没写,读所有进入死循环,在死循环里设置强制跳出执行正常文件关闭,前面的写数据也未执行。
实验代码如下:
程序代码:
void mulu()
{
    int aa,c=0;
    FILE* fp;
    fp = fopen("1232.txt", "a+");
    if (fp == NULL)
    {
        printf("已出现错误,请告诉漠情大神!");
        getchar();
        exit(0);
    }
//    fscanf(fp, "%d", &aa);
//    printf("%d\n", aa);
    aa = 89;
    fprintf(fp, "%d ", aa);
    while (fscanf(fp, "%d", &aa) != EOF)
    {
        printf("%d ", aa);
        c = c + 1;
        if (c > 5)break;
    }
    printf("\n");
    fclose(fp);
}

能编个毛线衣吗?
2020-05-04 09:06
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1701
专家分:4334
注 册:2007-12-27
收藏
得分:0 
嗯,带加号打开的文件可读可写,但是读写之间需要定位操作,fseek或者rewind之类的。

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2020-05-04 10:15
快速回复:求大佬改正寻找一下错误,
数据加载中...
 
   



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

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