2014-11-02 86 views
1

其實我對C++有了一些新東西。我想顯示「問題」,如果答案是不止一個「問題」,如果在下面的一個 回答這些都是他們的錯誤,我得到顯示一個字符串的C++

5 IntelliSense: no operator "<<" matches these operands 
     operand types are: std::basic_ostream<char, std::char_traits<char>> << std::string c:\Users\Ugwu\Documents\Visual Studio 2012\Projects\Chrysohgomus_Ugwu_A4\Chrysohgomus_Ugwu_A4\mathTutor.cpp 46 39 Chrysohgomus_Ugwu_A4 

或者Image Link

這是我的代碼

string Question; 

void grade() { 
    question = correct + incorrect; 
    if (question > 1){ 
     Question = "Questions"; 
    } 
    else{ 
     Question = "Question"; 
    } 
    cout << "Out Of " << question << " " << Question << " You Got " << correct << " Correct " << "And " << incorrect << " Incorrect " << endl; 
} 

有人能告訴我正確的方法嗎?

+4

什麼是「正確」,什麼是「不正確」? – furkle 2014-11-02 06:01:38

+0

您是否包含所需的標準庫標頭?我會避免有兩個變量的名稱只在大小寫不同的情況下才會出現沒有一個編譯的例子來測試我無法進一步幫助。 – 2014-11-02 06:02:38

+0

使用Question.c_str()代替cout中的Question – 2014-11-02 06:04:07

回答

0

一個可能的問題是,正確或不正確的不是可由cout打印的對象。

也有可能您沒有在程序中正確包含<string>。你在代碼中添加了#include <string>using std嗎?

(當然,我真的不支持using std想法,但如果你打算使用string沒有std::前綴,你必須添加using std。就個人而言,我想你會更好堅持std::string。)

+0

@NeilKirk好點 - 我已經收回,直到他提供更多的數據。 – furkle 2014-11-02 06:04:35

+0

你需要所有的代碼嗎? – 2014-11-02 06:07:34

+0

@ChrysAugunus至少,我們需要知道你是否正確包含了std :: string,以及正確和不正確的類型。問題很明顯,你正在試圖「cout」一種不能被「cout」處理的類型,所以我們需要知道你正在處理的類型。 – furkle 2014-11-02 06:09:02