argc,argv实现c ++

时间:2017-12-26 14:36:21

标签: c++ class argv argc

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

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

In[33]: import pandas as pd
In[34]: df1 = pd.DataFrame([1,2,3,4,5])
In[35]: id(df1)
Out[35]: 4541269200

In[36]: df2 = df1
In[37]: id(df2)
Out[37]: 4541269200  # Same id as df1

In[38]: df3 = df1.copy()
In[39]: id(df3)
Out[39]: 4541269584  # New object, new id.

In[40]: df4 = df1.copy(deep=False)
In[41]: id(df4)
Out[41]: 4541269072  # New object, new id.

In[42]: df1 = pd.DataFrame([9, 9, 9])
In[43]: id(df1)
Out[43]: 4541271120  # New object created and bound to name 'df1'.

Fisiere Intrare是一个类似的课程:

    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;
    }

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

2 个答案:

答案 0 :(得分:2)

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

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

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

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

但是,您提到的错误消息表明可能在某处隐藏了另一个问题。

答案 1 :(得分:-2)

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