6031:忽略返回值(getchar())在visual studio 2019中

问题描述 投票:2回答:1

它不会影响我的代码,但在更新我的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;
}
c++ visual-studio-2019
1个回答
5
投票

当visual studio更新时,他们为[[nodiscard]]添加了getchar属性。这告诉编译器在忽略函数的返回值时警告用户。你可以在这里找到更多信息:https://en.cppreference.com/w/cpp/language/attributes/nodiscard

在这种情况下,因为您只是为了阻止窗口关闭而使用getchar,所以您不需要返回值,因此您可以忽略此警告。

我们可以通过明确忽略返回值来使警告静音:

(void)getchar(); //Explicitly ignore return value
© www.soinside.com 2019 - 2024. All rights reserved.