1613551 发表于 2022-4-20 15:56:34

为啥dev-c++可以正常编译的程序到了vs里面就报错了?

图1到图3是vs报的错误,图4是dev-c++的正常运行

henkuderen 发表于 2022-4-20 17:46:03

主函数末尾的花括号漏掉了吧。

1613551 发表于 2022-4-20 17:51:31

henkuderen 发表于 2022-4-20 17:46
主函数末尾的花括号漏掉了吧。

我检查了一下,并没有呀,说是scanf的返回值被忽略

1613551 发表于 2022-4-20 17:53:15

henkuderen 发表于 2022-4-20 17:46
主函数末尾的花括号漏掉了吧。

好像全部程序都不行,都是说scanf的值返回值被忽略

1613551 发表于 2022-4-20 17:57:43

henkuderen 发表于 2022-4-20 17:46
主函数末尾的花括号漏掉了吧。

我看别人说是要加上这一串代码才行,不然scanf会报错,但是我加上了好像也没用#define _CRT_SECURE_NO_WARNINGS

Z244439775 发表于 2022-4-20 18:50:00

1613551 发表于 2022-4-20 17:57
我看别人说是要加上这一串代码才行,不然scanf会报错,但是我加上了好像也没用#define _CRT_SECURE_NO_WA ...

vs里面的scanf函数好像是scanf_s这个格式,可以试试,我也不确定对不对哈哈

henkuderen 发表于 2022-4-21 09:03:15

你都会更复杂的贴图了,为什么不直接更简单直接地把你的代码贴出来呢。

FK二十一 发表于 2022-4-21 09:31:19

返回值被忽略你就搞两个变量放上去装返回值试试嘛。

3120781247 发表于 2022-4-21 10:16:42

这个可以解决的

沮授 发表于 2022-4-21 10:33:56

scanf_s
防止溢出

1613551 发表于 2022-4-21 10:57:11

henkuderen 发表于 2022-4-21 09:03
你都会更复杂的贴图了,为什么不直接更简单直接地把你的代码贴出来呢。

不好意思,忘记把代码弄出来了
#include <stdio.h>
int main() {
        int a, b, c;
        int d, e, f;
        int h = 0;

        printf("请输入你的生日(如果1988-05-20):");
        scanf_s("%d-%d-%d", &a, &b, &c);
        printf("请输入今年的日期(如2016-03-28):");
        scanf_s("%d-%d-%d", &d, &e, &f);

        for (; a <= d; a++) {
                int g = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

                g = (a % 400 == 0 || (a % 4 == 0 & a % 100 == 0))? 29 : 28;

                for (; b <= 12; b++) {
                        for (; c <= g; c++) {
                                if (a == d && b == e && c == f) {
                                        goto result;

                                }
                                h++;

                        }


                        c = 1;

                }





                b = 1;

        }
result:
        printf("你在这个世界上总共生存了%d天\n", h);
        return 0;
}

1613551 发表于 2022-4-21 10:57:47

沮授 发表于 2022-4-21 10:33
scanf_s
防止溢出

这个确实解决了scanf的问题了..结果又出现了新的问题

1613551 发表于 2022-4-21 10:59:04

Z244439775 发表于 2022-4-20 18:50
vs里面的scanf函数好像是scanf_s这个格式,可以试试,我也不确定对不对哈哈

诶,难道你们都不是用vs的吗,我说听别人说dev c++太简陋了,才用vs的,然后确实是用scanf_s这个格式

1613551 发表于 2022-4-21 10:59:41

FK二十一 发表于 2022-4-21 09:31
返回值被忽略你就搞两个变量放上去装返回值试试嘛。

{:10_257:}可是什么是返回值

1613551 发表于 2022-4-21 11:01:51

沮授 发表于 2022-4-21 10:33
scanf_s
防止溢出

{:10_285:}解决了这个又有新问题了

1613551 发表于 2022-4-21 11:03:45

这是新的问题....
下面是代码
#include <stdio.h>
int main() {
        int a, b, c;
        int d, e, f;
        int h = 0;

        printf("请输入你的生日(如果1988-05-20):");
        scanf_s("%d-%d-%d", &a, &b, &c);
        printf("请输入今年的日期(如2016-03-28):");
        scanf_s("%d-%d-%d", &d, &e, &f);

        for (; a <= d; a++) {
                int g = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

                g = (a % 400 == 0 || (a % 4 == 0 & a % 100 == 0))? 29 : 28;

                for (; b <= 12; b++) {
                        for (; c <= g; c++) {
                                if (a == d && b == e && c == f) {
                                        goto result;

                                }
                                h++;

                        }


                        c = 1;

                }





                b = 1;

        }
result:
        printf("你在这个世界上总共生存了%d天\n", h);
        return 0;
}

FK二十一 发表于 2022-4-21 15:03:02

1613551 发表于 2022-4-21 11:03
这是新的问题....
下面是代码

上面的代码我在vscode跑了,没发现问题。
没有语法错误,你看看是不是跑错执行文件了。

1613551 发表于 2022-4-21 15:12:20

FK二十一 发表于 2022-4-21 15:03
上面的代码我在vscode跑了,没发现问题。
没有语法错误,你看看是不是跑错执行文件了。

我也可以了,不知道是什么问题,我把那个文件删了,又新建了一个就可以了

FK二十一 发表于 2022-4-21 15:40:31

1613551 发表于 2022-4-21 15:12
我也可以了,不知道是什么问题,我把那个文件删了,又新建了一个就可以了

执行文件用的原来的,不就相当于没改嘛

雷欧库珀 发表于 2022-4-21 17:35:12

1613551 发表于 2022-4-21 10:59
诶,难道你们都不是用vs的吗,我说听别人说dev c++太简陋了,才用vs的,然后确实是用scanf_s这个格式

用vscode,更复杂的项目用clion,vs太大了太重了,各种功能眼花缭乱的
页: [1] 2
查看完整版本: 为啥dev-c++可以正常编译的程序到了vs里面就报错了?