选择更多.txt

时间:2018-03-16 19:41:34

标签: c++ string

我正在处理一个项目,我需要每次根据输入选择不同的.txt。

这就是我所拥有的:

#include <iostream>
#include <cstdlib>
#include <time.h>
#include <fstream>
#include <string>
#include <stdio.h>

using namespace std;

int main()
{
string hp, att, def, vel, spec;
string answer, monster;

do
{
    cout << "Which Monster?: ";
    cin >> monster;
    cout << endl;

    ifstream selection;
    selection.open(monster+".txt");

    selection.close();

    cout << endl << "Again? ";
    cin >> answer;
}
while (answer == "y");

cout << "Hello world!" << endl;
return 0;
}

我必须获取怪物字符串并搜索具有相同名称的.txt。 如果我输入&#34; Troll&#34;它将搜索Troll.txt 有办法吗?

这是我得到的错误: F:\ GdR \ Campagna 1 \ CalcoloStats \ main.cpp | 22 |错误:没有匹配函数来调用&#39; std :: basic_ifstream :: open(std :: __ cxx11 :: basic_string)&#39; | < / p>

2 个答案:

答案 0 :(得分:1)

鉴于monsterstd::string,此表达式为:

 monster + ".txt"

也是std::string

从C ++ 11开始,您可以将其用作ifstream的{​​{1}}函数的参数。但是,在此之前,您遇到了open的限制,即它只能采用C风格的字符串。

幸运的是,您可以使用ifstream成员函数从std::string获取C风格的字符串。

所以,要么:

c_str()

或者从传统模式中获得现代编译器/开关。

答案 1 :(得分:-1)

感谢Orbit中的Lightness Races,用C ++ 11 Compiler标志解决