Не можете преобразовать строку в символ в C ++? - PullRequest
0 голосов
/ 01 марта 2020

Кто-нибудь знает, что не так с этим кодом?

#include <iostream>
#include <stdio.h>

using namespace std;

int main()
{
string a;
getline(cin, a);
for(;;)
{
    string x;
    x=1;
    string b;
    getline(cin, b);
    string c;
    getline(cin, c);
    string d;
    d=a+b;
    string e;
    e=b+c;
    if(b=="1")
    {
        return 0;
    }
    rename(d, e);
}
}

Он говорит, что ошибка в части

rename(d,e);

. И это выдает ошибку

cannot convert 'std::__cxx11::string {aka std::__cxx11::basic_string<char>}' to 'const char*' for argument '1' to 'int rename(const char*, const char*)

Так что я предполагаю, что не может преобразовать строку в символ. Кто-нибудь знает, как это сделать и отправить исправленную часть?

1 Ответ

2 голосов
/ 02 марта 2020

Неявное преобразование из std::string в указатель на символ отсутствует, его необходимо вызвать с помощью вызова функции:

rename( d.c_str(), e.c_str() ); 
...