VS 返回值被忽略的解决方法

 

•问题

  用 Visual Studio 编写 C++ 代码的时候,一旦用到  scanf , freopen  等函数的时候,编译器总会不合时宜的给你提示 “返回值被忽略”,那么该如何解决呢?

•解决方案 1

  右击  项目->属性 ,依次找到 【配置设置】->【C/C++】->【所有选项】,在搜索框中输入 $SDL$,并将选项 【是】 更改为 【否】

   更改完成后点击【应用】,此时,编译器就能正常使用  scanf , freopen  等报错的代码了。

•解决方案2

  在下面的输出信息中,我们可以看到有一处错误代号  error C4996 ;

  所以我们可以在程序开头加上一句  #pragma warning(disable:4996)  就行,意思是忽略这个错误;

•一劳永逸

  上述 1,2 两种方案都可以成功解决该错误,但每次新建一个项目我都要这样修改或添加这样一句代码吗?

  有没有一劳永逸的办法?

  嘿嘿,还真有!

  在你本地安装的 Visual Studio 目录下,找到 $newc++file.cpp$ 文件,我的在这个位置

 D:\Microsoft Visual Studio\2022\Community\Common7\IDE\VC\VCProjectItems 

  然后,打开该文件,添加上  #pragma warning(disable:4996) ,保存退出即可。

  该文件保存的是VS 中 C++ 默认的代码段,所以,你就不用每次都手动添加了。

  当然,如果你希望能在创建C++项目的时候自动就生成我们在代码开头想要的东西,包括创建信息注释,如版权声明、文件名、作者、日期时间、版本号等信息,而且包括初始的头文件声明和主函数等一些信息,都可以添加到该文件中。

  我放置的默认代码如下:

#pragma warning(disable:4996)//取消返回值被忽略的报错
#pragma warning(disable:4786)//取消使用STL中一些容器的报错
#include<bits/stdc++.h>
using namespace std;
#define INF 0x3f3f3f3f
#define INFll 0x3f3f3f3f3f3f3f3f
#define ll long long
#define pii pair<int ,int >
#define psi pair<string ,int >
#define pb(x) push_back(x)
#define ls(x) (x<<1)
#define rs(x) (x<<1|1)
#define GCD(a,b) __gcd(a,b)
#define PI acos(-1)
#define mem(a,b) memset(a,b,sizeof(a))
#define endl '\n'
#define Close() std::ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

int main()
{
    //freopen("E:\\Documents\\stdin&&stdout\\stdin\\文件名","r",stdin);//读文件
    //freopen("E:\\Documents\\stdin&&stdout\\stdout\\文件名","w",stdout);//写文件
    
    return 0;
}

  有关VS使用万能头文件  #include<bits/stdc++.h>  报错的解决方案,请移步 VS2022不能使用<bits/stdc++.h>的解决方案.

posted @ 2022-03-05 16:19  MElephant  阅读(4171)  评论(0编辑  收藏  举报