wutheringcoo 2018-10-13 20:27 采纳率: 0%
浏览 1618

C++中遇到ifstream问题

问题描述如下:
error: no matching function for call to 'std::basic_ifstream::basic_ifstream(std::__cxx11::string&)'|
源码如下:(请问哪位大神解答下?)

#include <iostream>
#include <vector>
#include<fstream>
#include<string.h>
#include <cstring>
//#include<string>
using namespace std;
vector < vector <char> > read_map(string file_name);
vector <char> read_line(string s);

int main () {

    read_map("maps/m1.txt");
    // TODO: Nothing to do here

    return 0;
}

vector < vector <char> > read_map(string file_name) {
    ifstream infile(file_name);
    vector < vector <char> > map;
    if (infile.is_open()) {

        char color;
        vector <char> row;

        string line;

        while (std::getline(infile, line)) {
            row = read_line(line);
            map.push_back(row);
        }
    }
    return map;
}

vector <char> read_line(string s) {
    vector <char> row;

    size_t pos = 0;
    string token;
    string delimiter = " ";
    char cell;

    while ((pos = s.find(delimiter)) != std::string::npos) {
        token = s.substr(0, pos);
        s.erase(0, pos + delimiter.length());

        cell = token.at(0);
        row.push_back(cell);
    }

    return row;
}

图片说明

展开全部

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-10-13 21:09
    关注

    explicit ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
    它不接收string,而是需要const char *

    char *pfilename = file_name.c_str();
    ifstream infile((const char *)pfilename);

    评论
  • 繁宵微梦 2018-10-14 05:50
    关注

    include <fstream>这个头文件

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部