visual stdio 2022 c++编程有问题


#include<stdio.h>
#include<math.h>
#include<graphics.h>
#include<conio.h>
#include<stdlib.h>
#define PI 3.141592653589793
#define s 50 //这是一个比率,相当于我把图形放大10倍
int qie()
{
    int k;
    initgraph(800, 700);  //初始化窗口,也就是程序框大小
    setbkcolor(WHITE);      //设置背景颜色
    setlinecolor(BLACK);    //设置坐标轴的颜色
    cleardevice();       //清除屏幕内容
    setorigin(400, 350);    //设定坐标原点
    line(-400, 00, 400, 00);    //绘制X轴
    line(0, 350, 0, -350);  //绘制Y轴
    for (int i = -500; i <= 500; i++)     //绘制坐标
    {
        line(s * i, 0, s * i, -10);
        if (i % 5 == 0)
            line(s * i, 0, s * i, -15);
        line(0, s * i, 10, s * i);
        if (i % 5 == 0)
            line(0, s * i, 15, s * i);
    }
    double x, y1, y2;
    for (x = -PI / 2; x <= PI / 2; x = x + 0.0001)
    {
        y1 = tan(x);        //计算出每个X对应的Y值
        y2 = 1 / tan(x);
        putpixel(s * x, -s * y1, RED);
        putpixel(s * x, -s * y2, BLUE);//画出每个点
    }
    scanf("%d", &k);
    closegraph();
    return 0;
}
int xian()
{
    int k;
    initgraph(800, 700);  //初始化窗口,也就是程序框大小
    setbkcolor(WHITE);      //设置背景颜色
    setlinecolor(BLACK);    //设置坐标轴的颜色
    cleardevice();       //清除屏幕内容
    setorigin(400, 350);    //设定坐标原点
    line(-400, 00, 400, 00);    //绘制X轴
    line(0, 350, 0, -350);  //绘制Y轴
    for (int i = -500; i <= 500; i++)     //绘制坐标
    {
        line(s * i, 0, s * i, -10);
        if (i % 5 == 0)
            line(s * i, 0, s * i, -15);
        line(0, s * i, 10, s * i);
        if (i % 5 == 0)
            line(0, s * i, 15, s * i);
    }
    double x, y1, y2;
    for (x = 0; x <= 2 * PI; x = x + 0.0001)
    {
        y1 = cos(x);        //计算出每个X对应的Y值
        y2 = sin(x);
        putpixel(s * x, -s * y1, RED);
        putpixel(s * x, -s * y2, BLUE);//画出每个点
    }
    scanf("%d", &k);
    closegraph();
    return 0;
}
int ercihanshu()
{
    int k;
    initgraph(800, 700);  //初始化窗口,也就是程序框大小
    setbkcolor(WHITE);      //设置背景颜色
    setlinecolor(BLACK);    //设置坐标轴的颜色
    cleardevice();       //清除屏幕内容
    setorigin(400, 350);    //设定坐标原点
    line(-400, 00, 400, 00);    //绘制X轴
    line(0, 350, 0, -350);  //绘制Y轴
    for (int i = -500; i <= 500; i++)     //绘制坐标
    {
        line(s * i, 0, s * i, -10);
        if (i % 5 == 0)
            line(s * i, 0, s * i, -15);
        line(0, s * i, 10, s * i);
        if (i % 5 == 0)
            line(0, s * i, 15, s * i);
    }
    double x, y1, y2;
    for (x = -30; x <= 30; x = x + 0.0001)
    {
        y1 = x * x;        //计算出每个X对应的Y值
        y2 = sqrt(1 - x * x);
        putpixel(s * x, -s * y1, RED);
        putpixel(s * x, -s * y2, BLUE);//画出每个点
    }
    printf("按任意数字返回主菜单\n");
    scanf("%d", &k);
    closegraph();
    return 0;
}
void menu()//菜单 
{
    int x;//菜单选项
    system("cls");
    printf("\n\n\n\n\n\n");
    printf("      *****************************************************************\n");
    printf("      *****************************************************************\n");
    printf("\n");
    printf("\t\t\t\tc语言界面函数绘制系统");
    printf("\n");
    printf("\t\t1.0-360°的sin x与 cos x函数图像绘制\n\n");
    printf("\t\t2.-90~90°的正切余切函数绘制\n\n");
    printf("\t\t3.二次函数与半圆形图像绘制\n\n");
    printf("\t\t4.退出系统");
    printf("\n");
    printf("      *****************************************************************\n");
    printf("      *****************************************************************\n");
    printf("\t请输入你的选择:(1-4,每次绘制完后按任意数字并回车返回主菜单)");
    scanf("%d", &x);
    switch (x)
    {
    case 1: {     system("cls");
        xian();
        break;
    }
    case 2: {    system("cls");
        qie();
        break;
    }
    case 3: {
        system("cls");
        ercihanshu();
        break;
    }
    case 4: {
        system("cls");
        exit(0);
        break;
    }

    }
}
int main()
{
    while (1)
    {
        menu();
    }
    return 0;
}

这个报错能帮忙改正一下吗,实在是没有看懂为啥,graphic函数弄过了,是下面这个

img

img

img

高版的VS默认不让使用scanf,fopen等函数,说是scanf,fopen等函数不安全,
想要使用,在代码最开头加上

#define _CRT_SECURE_NO_WARNINGS
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7428061
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Visual Stdio 2022 C语言源文件调试教程
  • 除此之外, 这篇博客: Visual stdio2015的安装以及如何编写第一个C代码中的 安装步骤 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    注意:安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文
    装载镜像
    下载之后的文件是.iso格式的镜像,Windows 8/10都能够双击装载镜像,而Windows 7不能直接装载,可以使用解压软件对.iso文件进行解压。


  • 以下回答来自chatgpt:

    根据问题描述,您在使用Visual Studio 2022时遇到了一个与graphic函数相关的错误报告。对于这个问题,我们需要详细了解错误报告的内容才能帮助您解决问题。请提供具体的错误报告信息,以便我们可以给出相应的解决方案。

    如果您对报错信息不太理解,可以尝试以下步骤来调试和解决问题:

    1. 检查代码:请仔细检查您的代码,确保没有语法错误、拼写错误或逻辑错误。特别要注意是否正确地包含了所需的头文件和库文件。

    2. 查看报错信息:如果报错信息中给出了具体的函数名、行号或错误描述,请根据这些信息定位到可能出错的代码位置。通常报错信息会告诉您哪一行代码出现了问题或者指出了出错的函数。

    3. 确定错误类型:了解报错信息中指出的错误类型,例如编译错误、链接错误、运行时错误等。不同类型的错误需要采取不同的解决方案。

    4. 检查函数调用:如果报错信息显示了某个函数的问题,可以检查函数的调用方式和参数是否正确。确保传递给函数的参数类型和数量与函数定义一致。

    5. 查找相关文档和示例:如有需要,您可以查阅相关的编程文档、参考资料或示例代码,以便更好地理解和解决问题。在微软官方的Visual Studio文档和社区论坛上可能会找到相关的帮助。

    6. 使用调试工具:Visual Studio提供了强大的调试工具,您可以使用断点和调试器来追踪程序的执行过程,查看变量的值和内存状态,以帮助您找到问题所在。您可以在出错的代码行上设置断点,启动调试模式运行程序,并逐步执行代码以定位错误。

    请遵循以上步骤尝试解决问题。如果您遇到了具体的编程问题,欢迎随时提问,我们会尽力提供帮助。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

来自GPT的回答:

你的代码中包含了使用graphics.h库进行图形绘制的部分,而该库通常是与 Borland Turbo C++ 编译器一起使用的,不被标准的 Visual Studio 2022 C++ 编译器所支持。

如果你想在 Visual Studio 2022 中进行图形绘制,可以考虑使用其他图形库,如OpenGL、SFML、SDL等。这些库提供了跨平台的图形绘制功能,并且可以与 Visual Studio 2022 兼容。

以下是一个使用SFML库进行图形绘制的示例代码,供你参考:

cpp
Copy code
#include <SFML/Graphics.hpp>

int main()
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Graphics");
    
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }
        
        window.clear(sf::Color::White);
        
        // 绘制图形
        sf::CircleShape circle(50);
        circle.setFillColor(sf::Color::Red);
        circle.setPosition(200, 200);
        window.draw(circle);
        
        window.display();
    }
    
    return 0;
}
这段代码使用了SFML库进行图形窗口的创建和绘制,其中绘制了一个红色的圆形。你可以根据需要修改和扩展这个示例来实现你的图形绘制需求。

请注意,在使用其他图形库之前,你需要确保已经安装了相应的库,并在项目设置中配置了正确的包含路径和链接库。具体的操作步骤可以参考相应图形库的文档或教程。

另外,如果你仍然希望使用 Borland Turbo C++ 编译器进行图形绘制,你可以考虑在 Visual Studio 2022 中配置 Borland Turbo C++ 编译器的集成。这需要一些额外的设置和配置步骤,可以参考相关的文档和教程来完成。

你这个需要图形库,easyx了解下。