尝试将字符串传递给std :: ifstream作为参数 [英] Attempting to pass string to std::ifstream as argument

查看:660
本文介绍了尝试将字符串传递给std :: ifstream作为参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用从向量中检索的字符串将文件名传递给ifstream打开。

I'm attempting to use a string retrieved from a vector to pass a filename to ifstream for opening.

vector<string> files;

//Populate vector

std::ifstream ifile(files[0] ,std::ios::binary);

编译时返回:

:没有匹配的函数调用'std :: basic_ifstream> :: basic_ifstream(std :: basic_string,std :: allocator>& const std :: _Ios_Openmode&)*

error: no matching function for call to 'std::basic_ifstream >::basic_ifstream(std::basic_string, std::allocator >&, const std::_Ios_Openmode&)*

如果我尝试将文件[0]转换为const char *首先

If I attempt to convert files[0] to const char * first

vector<string> files;

std::string l = files[0];
const char *p;
p = l.c_str();
std::ifstream ifile(p ,std::ios::binary);

编译器返回:

'l'未在此范围内声明

error: 'l' was not declared in this scope

我在这里做错了什么?

What am I doing wrong here? It's something basic and glaring i'm sure.

推荐答案

尝试:

std::ifstream ifile(files[0].c_str(), std::ios::binary);

这篇关于尝试将字符串传递给std :: ifstream作为参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆