Не знаю, почему это не работает, все кажется правильным, но, может быть, я упускаю что-то очевидное, так как я только знакомлюсь с C ++.
Программа:
#include <iostream>
#include <string>
using namespace std;
string ask(){
string ans2;
cout << "Type:";
cin >> ans2;
return ans2;
}
int main()
{
string ans2;
string ans1="Hello";
ask();
cout << ans1 << " turns into " << ans2;
return 0;
}
С сообщением об ошибке:
Line 20:[Error] no match for call to '(std::string {aka std::basic_string<char>}) (std::string&)'
Line 6:[Error] 'ans2' was not declared in this scope
Line 6:[Error] expected ',' or ';' before '{' token
ans2
в main
И в ask
две разные переменные. Когда вы возвращаете значение ans2
в вашем ask
функция, вам нужно захватить его в свой main
функция через ans2 = ask();
, Рабочий пример на Ideone