skywyh 2024-06-21 10:24 采纳率: 0%
浏览 2

大一程序设计fprintf函数问题

img

img


上面图片是我写的两个函数,问题是在输入完最后一个jmoney后窗口程序一两秒后直接结束,未打印录入成功且未在filename文件中输出所输入的数据,不知道问题在哪!

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-06-21 10:24
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从你提供的代码片段来看,存在一些明显的问题,这可能是导致程序提前结束和数据未能正确写入文件的原因。以下是一些可能的问题和建议的解决方案:

    1. 格式化字符串错误:在printfscanf的调用中,格式化字符串存在一些错误,比如printf("\n请输入姓名:")后面的冒号应该是分号;,而不是冒号:

    2. 变量i的使用:在add1函数中,int i;后面紧接着i=z;,这里的z没有定义,这会导致编译错误。如果z是一个全局变量或者之前已经定义,那么需要确保它在此处被正确初始化。

    3. scanf的使用:在读取字符串时,应该使用%[^\n]来避免读取换行符,例如scanf("%[^\n]", yzlil.name)

    4. fprintf的格式字符串:在add3函数中,fprintf的格式字符串似乎不完整,缺少了%符号,应该是fprintf(file, "姓名: %s, 身份证号: %s, 性别: %s, 电话号码: %s, 房门号: %s, 住宅总平米数: %d, 每平米物业费: %d, 应缴物业费: %d\n", yzlil.name, yzlil.stzh, yzlil.sex, yzlil.tele, yzlil.room, yzlil.area, yzlil.amonex, yzlil.jmonex);

    5. fflush的使用:在add3函数中,fflush(file);可能不是必需的。通常只有在需要立即将缓冲区的内容写入文件时才使用fflush

    6. 文件打开失败的处理:在add3函数中,如果文件打开失败(file == NULL),程序应该有一个错误处理机制,比如打印错误消息并返回,而不是继续执行。

    7. 程序结束的原因:如果程序在完成输入后立即结束,可能是因为没有适当的延时或者等待用户输入。你可以在程序的最后添加一个getchar()来等待用户按下回车键。

    8. replace1函数的问题:从提供的代码片段来看,replace1函数似乎不完整,且存在一些语法错误,比如scanf%sn\u0026id):应该是scanf("%99s", id);

    请根据上述建议检查和修改你的代码。如果问题仍然存在,你可能需要提供更完整的代码或者更详细的错误信息来进一步诊断问题。

    至于参考链接,这里没有特定的链接提供,因为这些问题通常涉及C语言的基础语法和编程实践。你可以参考C语言的官方文档或者在线教程来获取更多信息。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月21日

悬赏问题

  • ¥15 算法题:连接所以点,找两条无交叉,且长度最接近的线
  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进