C++ 文件打开时候关于open()函数的问题~

string str1="InFile1.cpp";
filereadht(str1);
void filereadht(string dex)//我调用了这个函数.把字符串str1带入进来
{
fstream nf;
nf.open(dex,ios::in);//但是到这里会报错,我也试过把dex写成dex.c_str()了,但是那样会无法打开文件!!求助啊~
}

open()函数的第一个参数不是字符串么,为什么我从外面弄进来的字符串就打不开文件了呢?还是说路径之类的问题,我用的2005,已经把那个文件放在debug文件夹下头了
如果不改成dex.c_str(),会报错: 不能将参数 1 从“std::string”转换为“const wchar_t *”

第1个回答  推荐于2018-04-06
//我就不知你情况拉,发个正确的给你,有什么问题就追问吧

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
string str1="d://a.txt";
char buff[20];
void filereadht(string dex)//我调用了这个函数.把字符串str1带入进来
{
fstream nf;
nf.open(dex.begin(),ios::in);
nf.read(buff,5);
}

void main()
{

filereadht(str1);
cout<<buff<<endl;
}本回答被提问者和网友采纳
第2个回答  2011-05-18
//一下代码希望对你有帮助:
string A;
cout<<"请输入文件的相对或绝对路径:"
cin>>A;
ifstream infile;
infile.open(A.c_str())
//调用string::c_str()函数就ok了
第3个回答  2020-03-24
未知文件名,怎么可能打开啊,open的第一个参数就是文件的路径
第4个回答  2011-05-18
我觉得你需要去看一下fstream的msdn说明
第5个回答  2011-05-18
将文件和你的源代码放在同一个目录下
相似回答