DaybreakTian 2016-05-05 01:22 采纳率: 83.3%
浏览 1899
已采纳

C++gets()函数求帮忙!!!作业交不上去了!!

#include<iostream>
#include<stdio.h>
#include"md5.h"
using namespace std;
int main(){
    char filename[200];   //文件名
    while(1){
    printf("Input file:");
    gets(filename);    //用get函数,避免scanf以空格分割数据,
    if (filename[0]==34) filename[strlen(filename)-1]=0,strcpy(filename,filename+1);  //支持文件拖曳,但会多出双引号,这里是处理多余的双引号
    if (!strcmp(filename,"exit")) exit(0);  //输入exit退出
    char* p=md5(filename);
    cout<<p<<endl;
    }
    return 0;
}

问题就是:
编译能够通过。
一输入文件位置名称,就停止运行。
图片说明

调试了一下,是运行完gets(filename)后就出错。

大神,求帮忙!!!!!!!!!!!!

  • 写回答

3条回答

  • 小灸舞 2016-05-05 01:28
    关注

    崩溃的时候在弹出的对话框按相应按钮进入调试,按Alt+7键查看Call Stack即“调用堆栈”里面从上到下列出的对应从里层到外层的函数调用历史。双击某一行可将光标定位到此次调用的源代码或汇编指令处,看不懂时双击下一行,直到能看懂为止。

    代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。
    提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
    单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类