sulley 发表于 2020-2-18 18:33:47

关于第一课课后习题运行失败的提问

大佬们好,我使用的是Windows操作系统Visual Studio 软件,今天在运行课后代码的过程中无论是自己依照代码的敲击内容亦或是复制粘贴运行的内容最终都显示的是运行失败,请问这是什么原因呢?然后该如何解决该问题?谢谢大家!{:10_254:}

4goodworld 发表于 2020-2-18 18:56:43

问题是提示什么错误之类呢?
请附上图片,方便一同查找原因

jackz007 发表于 2020-2-18 19:06:07

本帖最后由 jackz007 于 2020-2-18 19:07 编辑

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

          1、贴出源代码 !!!

          2、贴出错误信息!!!

sulley 发表于 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, target;

    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;

    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 = ".";

    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       

sulley 发表于 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      

sulley 发表于 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 个 ==========

sulley 发表于 2020-2-18 20:52:35

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




不好意思啊,刚才漏发了一些错误提示代码信息,现在补上!

4goodworld 发表于 2020-2-18 21:03:11

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

sulley 发表于 2020-2-18 21:15:02

4goodworld 发表于 2020-2-18 21:03

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

那个代码我是直接copy的老师给我们的作业代码?莫非您指的是中途缩进出现问题了?如果方便能麻烦你到课后练习V++板块的第一个作业的S1E2看看么?代码就出自那儿。谢谢谢谢谢【笔心】

jackz007 发表于 2020-2-18 22:40:23

本帖最后由 jackz007 于 2020-2-18 22:41 编辑

      原因是你使用的 VC 版本太高。其实,错误信息中已经提示过了,在源程序开头添加下面一句代码试试
#define _CRT_SECURE_NO_WARNINGS

sulley 发表于 2020-2-19 14:46:35

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

谢谢大佬指点迷津!
页: [1]
查看完整版本: 关于第一课课后习题运行失败的提问