6031: return 值被忽略 (getchar()) 在 visual studio 2019
6031: return value ignored (getchar()) In visual studio 2019
它不会影响我的代码,但在我更新 visual studio 之前我从未见过这样的问题。我不知道这是否相关,但我很困惑为什么会出现问题。
#include <iostream>
#include <string>
#include <array>
using namespace std;
int main() {
const int SIZE = 3;
array<string, SIZE> names = { "S","A","W" };
array<string, SIZE>::iterator it;
cout << "names: \n";
for (it = names.begin(); it != names.end(); it++)
cout << *it << endl;
getchar();
return 0;
}
更新 visual studio 时,他们向 getchar
添加了一个 [[nodiscard]]
属性。这告诉编译器在函数的 return 值被忽略时警告用户。您可以在这里找到更多信息:https://en.cppreference.com/w/cpp/language/attributes/nodiscard
在这种情况下,因为您使用 getchar
只是为了防止 window 关闭,所以您不需要 return 值,因此您可以忽略此警告.
我们可以通过显式忽略 return 值来消除警告:
(void)getchar(); //Explicitly ignore return value
在这种情况下,我个人的解决方法是在控制台中暂停,像这样加倍:
getchar();getchar();
它不会影响我的代码,但在我更新 visual studio 之前我从未见过这样的问题。我不知道这是否相关,但我很困惑为什么会出现问题。
#include <iostream>
#include <string>
#include <array>
using namespace std;
int main() {
const int SIZE = 3;
array<string, SIZE> names = { "S","A","W" };
array<string, SIZE>::iterator it;
cout << "names: \n";
for (it = names.begin(); it != names.end(); it++)
cout << *it << endl;
getchar();
return 0;
}
更新 visual studio 时,他们向 getchar
添加了一个 [[nodiscard]]
属性。这告诉编译器在函数的 return 值被忽略时警告用户。您可以在这里找到更多信息:https://en.cppreference.com/w/cpp/language/attributes/nodiscard
在这种情况下,因为您使用 getchar
只是为了防止 window 关闭,所以您不需要 return 值,因此您可以忽略此警告.
我们可以通过显式忽略 return 值来消除警告:
(void)getchar(); //Explicitly ignore return value
在这种情况下,我个人的解决方法是在控制台中暂停,像这样加倍:
getchar();getchar();