2015-09-11 59 views
-4

不知道爲什麼這不起作用,一切似乎是正確的,但也許我錯過了一些明顯的東西,因爲我只是瞭解C++。爲什麼我的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 
+7

你可能想'ans2 = ask();',但除此之外,這段代碼對我來說很好。 –

+2

您遇到問題的程序與您在此顯示的程序不同。首先,第20行是本程序中'main'函數的關閉'}'。 –

+0

我剛剛編譯使用C++ 14,它似乎編譯。 http://ideone.com/sUgMSU –

回答

2

mainaskans2是兩個不同的變量。當您在ask函數中返回ans2的值時,您需要通過ans2 = ask();將其捕獲到main函數中。 Working example on ideone

+0

這究竟是如何解決編譯器錯誤? –

相關問題