鱼C论坛

 找回密码
 立即注册
查看: 2305|回复: 11

[已解决]vs2022这个报错怎么解决.....

[复制链接]
发表于 2023-7-10 12:34:26 | 显示全部楼层 |阅读模式

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

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

x
C语言的统计代码行数,第一次在VS 2022上运行,然后报错这个问题
0x00007FFCB0FFFAAD (ntdll.dll) (Project1.exe 中)处有未经处理的异常: 0xC0000005: 写入位置 0x0000000069D453F0 时发生访问冲突。
最佳答案
2023-7-10 12:45:06
本帖最后由 歌者文明清理员 于 2023-7-10 12:46 编辑
Fertig 发表于 2023-7-10 12:40
#define _CRT_SECURE_NO_WARNINGS 1
#include
#include


这个错误是访问冲突引起的,可能是由于文件路径或文件名长度超过了系统限制。你可以试试以下解决方法:

  • 确保文件路径和文件名没有超过系统限制的长度(通常为260个字符)。
  • 检查文件路径和文件名中是否包含非法字符,如空格或特殊字符。尽量避免在路径和文件名中使用中文字符或其他非ASCII字符。
  • 确保你有足够的权限来访问文件。尝试使用管理员身份运行程序。
  • 更新你的编译器和相关的库文件。确保使用的是最新版本,并且与你的操作系统兼容。
  • 重新安装 Visual Studio。有时候损坏的安装文件会导致此类问题。

6. 使用gcc:https://fishc.com.cn/thread-224194-1-1.html
如果以上方法都没有解决问题,提供更多的细节和错误信息(如图片),以便其他人能够更好地理解和解决你的问题。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-7-10 12:40:32 | 显示全部楼层

#define _CRT_SECURE_NO_WARNINGS 1
#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;


}
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-23 02:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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