我的程序主要部分有问题。我试图在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。
您的代码中存在几个问题:
if (argv[i] = "Angajat.txt")
正如KeithSmith指出“=”是赋值运算符,为了比较,需要“==”运算符。另外,在C / C ++中无法轻易比较C-Strings。当您使用c ++标记问题时,可以将参数转换为std :: string对象并将其与文件名进行比较:
if (std::string(argv[i]) == "Angajat.txt")
但是,您提到的错误消息表明可能存在隐藏在某处的其他问题。
argv []是const char *,我是未确定的,编译器无法弄清楚。