•問題
用 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>的解決方案.