string 字符串传递调用问题
本帖最后由 小休克 于 2019-1-14 23:22 编辑我想读取一个1.txt,文件,则有以下代码是没问题的
viod main(){
fstream in("1.txt");
}
但是如果改成如下这样就不行了,报错
viod main(){
string strs="1.txt";
fstream in(strs);
}
这是为什么,怎么解决?主要是我想把fstream 单独作为一个函数使用,就像下面那样
void read( string strs){
fstream in( strs);
}
但是就像我说的那样,他是错误的,该如何更改? char strs[] = "1.txt"; 会报错吗?
#include <fstream>
#include <string>
int main()
{
std::string filename = "1.txt";
std::fstream in(filename);
return 0;
}
人造人 发表于 2019-1-14 23:54
会报错吗?
会报错,二楼的方法可以 ba21 发表于 2019-1-14 23:51
char strs[] = "1.txt";
太好了,可以解决问题,这是为什么么 /手动笑哭 小休克 发表于 2019-1-15 00:36
会报错,二楼的方法可以
会报错吗?贴一下你的报错信息
小休克 发表于 2019-1-15 00:36
太好了,可以解决问题,这是为什么么 /手动笑哭
看函数说明不就知道了 人造人 发表于 2019-1-15 00:58
会报错吗?贴一下你的报错信息
我用的是VC6.0,可能版本限制吧
error C2664: '__thiscall std::basic_fstream<char,struct std::char_traits<char> >::std::basic_fstream<char,struct std::char_traits<char> >(const char *,int)' : cannot convert parameter 1 from 'class std::ba
sic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
执行 cl.exe 时出错. 小休克 发表于 2019-1-15 11:36
我用的是VC6.0,可能版本限制吧
嗯,应该是vc6太老了
#include <fstream>
#include <string>
int main()
{
std::string filename = "1.txt";
std::fstream in(filename.c_str());
return 0;
}
页:
[1]