鱼C论坛

 找回密码
 立即注册
查看: 2230|回复: 10

[已解决]关于第一课课后习题运行失败的提问

[复制链接]
发表于 2020-2-18 18:33:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
大佬们好,我使用的是Windows操作系统Visual Studio 软件,今天在运行课后代码的过程中无论是自己依照代码的敲击内容亦或是复制粘贴运行的内容最终都显示的是运行失败,请问这是什么原因呢?然后该如何解决该问题?谢谢大家!
最佳答案
2020-2-18 22:40:23
本帖最后由 jackz007 于 2020-2-18 22:41 编辑

        原因是你使用的 VC 版本太高。其实,错误信息中已经提示过了,在源程序开头添加下面一句代码试试
#define _CRT_SECURE_NO_WARNINGS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-18 18:56:43 | 显示全部楼层
问题是提示什么错误之类呢?
请附上图片,方便一同查找原因
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-18 19:06:07 | 显示全部楼层
本帖最后由 jackz007 于 2020-2-18 19:07 编辑

          楼主,你是在抱怨吗?如果是求助,那就老老实实做好下面 2 件事:

          1、贴出源代码 !!!

          2、贴出错误信息!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-18 20:42:21 | 显示全部楼层
jackz007 发表于 2020-2-18 19:06
楼主,你是在抱怨吗?如果是求助,那就老老实实做好下面 2 件事:

          1、贴出源代码  ...

实在抱歉!今天刚使用论坛,不知道规矩,望多多谅解啊!下面是源代码!

C:\Users\lenovo\Desktop

#include <io.h>
#include <direct.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX        256

long total;

int countLines(const char* filename);
void findAllCodes(const char* path);
void findALLFiles(const char* path);

int countLines(const char* filename)
{
    FILE* fp;
    int count = 0;
    int temp;

    if ((fp = fopen(filename, "r")) == NULL)
    {
        fprintf(stderr, "Can not open the file:%s\n", filename);
        return 0;
    }

    while ((temp = fgetc(fp)) != EOF)
    {
        if (temp == '\n')
        {
            count++;
        }
    }

    fclose(fp);

    return count;
}

void findAllCodes(const char* path)
{
    struct _finddata_t fa;
    long handle;
    char thePath[MAX], target[MAX];

    strcpy(thePath, path);
    if ((handle = _findfirst(strcat(thePath, "/*.c"), &fa)) != -1L)
    {
        do
        {
            sprintf(target, "%s/%s", path, fa.name);
            total += countLines(target);
        } while (_findnext(handle, &fa) == 0);
    }

    _findclose(handle);
}

void findALLDirs(const char* path)
{
    struct _finddata_t fa;
    long handle;
    char thePath[MAX];

    strcpy(thePath, path);
    if ((handle = _findfirst(strcat(thePath, "/*"), &fa)) == -1L)
    {
        fprintf(stderr, "The path %s is wrong!\n", path);
        return;
    }

    do
    {
        if (!strcmp(fa.name, ".") || !strcmp(fa.name, ".."))
            continue;

        if (fa.attrib == _A_SUBDIR)
        {
            sprintf(thePath, "%s/%s", path, fa.name);
            findAllCodes(thePath);
            findALLDirs(thePath);
        }
    } while (_findnext(handle, &fa) == 0);

    _findclose(handle);
}

int main()
{
    char path[MAX] = ".";

    printf("计算中...\n");

    findAllCodes(path);
    findALLDirs(path);

    printf("目前你总共写了 %ld 行代码!\n\n", total);
    system("pause");

    return 0;
}

以下是错误代码(我不大明白怎么贴图片,它要求贴地址)
严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        22       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        47       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        48       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        52       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        66       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        67       

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        80       
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-18 20:46:44 | 显示全部楼层
4goodworld 发表于 2020-2-18 18:56
问题是提示什么错误之类呢?
请附上图片,方便一同查找原因

您好!我不大清楚怎么贴图,只得将错误代码法制下来,内容如下:

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        22        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        47        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        48        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        52        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        66        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        67        

严重性        代码        说明        项目        文件        行        禁止显示状态
错误        C4996        'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.        Project1        C:\Users\lenovo\Desktop\Project1\Project1\1.cpp        80        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-18 20:51:15 | 显示全部楼层
4goodworld 发表于 2020-2-18 18:56
问题是提示什么错误之类呢?
请附上图片,方便一同查找原因

不好意思啊!刚才还漏发了一些,现在补上!
1>------ 已启动生成: 项目: Project1, 配置: Debug Win32 ------
1>1.cpp
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(22,1): error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(208): message : 参见“fopen”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(47,1): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\string.h(133): message : 参见“strcpy”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(48,1): error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\string.h(90): message : 参见“strcat”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(52,1): error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1774): message : 参见“sprintf”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(66,1): error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\string.h(133): message : 参见“strcpy”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(67,1): error C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\string.h(90): message : 参见“strcat”的声明
1>C:\Users\lenovo\Desktop\Project1\Project1\1.cpp(80,1): error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt\stdio.h(1774): message : 参见“sprintf”的声明
1>已完成生成项目“Project1.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-18 20:52:35 | 显示全部楼层
sulley 发表于 2020-2-18 20:42
实在抱歉!今天刚使用论坛,不知道规矩,望多多谅解啊!下面是源代码!

不好意思啊,刚才漏发了一些错误提示代码信息,现在补上!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-18 21:03:11 | 显示全部楼层
#define _CRT_SECURE_NO_WARNINGS 

我直接拷贝你的代码,感觉还有不足的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-18 21:15:02 | 显示全部楼层
4goodworld 发表于 2020-2-18 21:03

我直接拷贝你的代码,感觉还有不足的

那个代码我是直接copy的老师给我们的作业代码?莫非您指的是中途缩进出现问题了?如果方便能麻烦你到课后练习V++板块的第一个作业的S1E2看看么?代码就出自那儿。谢谢谢谢谢【笔心】
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-18 22:40:23 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2020-2-18 22:41 编辑

        原因是你使用的 VC 版本太高。其实,错误信息中已经提示过了,在源程序开头添加下面一句代码试试
#define _CRT_SECURE_NO_WARNINGS
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-19 14:46:35 | 显示全部楼层
jackz007 发表于 2020-2-18 22:40
原因是你使用的 VC 版本太高。其实,错误信息中已经提示过了,在源程序开头添加下面一句代码试试

谢谢大佬指点迷津!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表