argc,argv实现c ++

问题描述 投票:-3回答:2

我的程序主要部分有问题。我试图在argc,argv中实现主要参数,它将接收txt文件作为输入。此外,当我尝试读取文件时,我收到如下错误:变量i未经初始化使用,我必须单击“中止”。

代码的主要部分是这一个:

    void main(int argc, char* argv[])
{
    cout <<"<---------------FAZA 2--------------->" <<endl;
    cout << " Numar de argumente ale functiei main:" << argc << endl;
    for (int i = 0; i < argc; i++) 
    {
        if (argv[i] = "Angajat.txt")
        {
            Fisiere_Intrare f1;
            f1.Fisiere_Angajati();
            break;
        }
        else
            cout << " O.K." << endl;
    }

Fisiere Intrare是这样写的一个类:

 class Fisiere_Intrare
{
public:
    void Fisiere_Angajati()
    {
        ifstream fis;
        fis.open("Angajat.txt", ifstream::in);
        if (fis.is_open())
        {
            while (!fis.eof())
            {
                Angajat a;
                fis >> a;
                cout << a;
            }
        }
        fis.close();
    }
};

“Angajat”也是一个具有以下属性的类:name,salary,work_age。

c++ class argv argc
2个回答
2
投票

您的代码中存在几个问题:

if (argv[i] = "Angajat.txt")

正如KeithSmith指出“=”是赋值运算符,为了比较,需要“==”运算符。另外,在C / C ++中无法轻易比较C-Strings。当您使用c ++标记问题时,可以将参数转换为std :: string对象并将其与文件名进行比较:

if (std::string(argv[i]) == "Angajat.txt")

但是,您提到的错误消息表明可能存在隐藏在某处的其他问题。


-2
投票

argv []是const char *,我是未确定的,编译器无法弄清楚。

© www.soinside.com 2019 - 2024. All rights reserved.