为什么我的程序会因错误信息而停止?

时间:2017-05-05 11:56:57

标签: c++ visual-studio

我在Visual Studio(VS)中编写了一些C ++代码,它使用了一些命令行参数; (argc, argv)

但是,当我从VS内部运行它时,它会显示此错误消息并停止工作。

error message

该项目是Win32控制台应用程序。

另外,我不知道在VS中运行时如何为程序提供参数。

代码:

#include <iostream>
#include <fstream>
using namespace std;

int main(int argc, char* argv[]) {
    if (argc != 3)
        cerr << "Please input valid file name";
    int year;
    ifstream in(argv[1]);
    ofstream out;
    out.open(argv[2], ofstream::app);
    if (out) {
        //cout << "Input year:" << endl;
        while (in >> year)
            if ((year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0)
                out << year << " is a leap year" << endl;
            else   out << year << " is not a leap year" << endl;
    }
    else
        cerr << "can not open! Try again";
    return 0;
}

1 个答案:

答案 0 :(得分:1)

正如评论中已经说明并由OP解决的:当检查参数的数量时,如果检查失败,您可能无法继续并使用参数。要从VS中将参数传递给程序,请参阅this question