不知道这个错误如何修改
代码如下
#include<iostream>
#include "Identity.h"
using namespace std;
#include<fstream>
#include <string>
#include "globalFile.h"
void LoginIn(string fileName,int type)
{
//父类指针,用于指向子类对象
Identity * person=NULL;
//读文件
ifstream ifs;
ifs.open(fileName,ios::in);
}
最后一行报错
错误 1 error C2664: “void std::basic_ifstream<_Elem,_Traits>::open(const wchar_t *,std::ios_base::openmode,int)”: 不能将参数 1 从“std::string”转换为“const wchar_t *”
最后一行“ ifs.open(fileName, ios::in)
”出错,你的“fileName”是string类型,open函数的参数是C风格字符串,参数类型不匹配。
解决方案:可以将你这个函数的第一个参数fileName的类型改为const char* ,即“ void LoginIn(const char* fileName, int type)
”;或是调用string类的c_str()方法将string转化为C风格字符串格式,也就是将调用open的一段改为“ifs.open(fileName.c_str(), ios::in)
”
改成
ifs.open(fileName.c_str(),ios::in);