2014-05-21 52 views
0

嗨基本上我真的試圖讓一個字猜謎遊戲,一切工作正常,但我只是不能連接的信件,我什麼都試過改變類型,使用srtcat,追加或+,在代碼波紋管的問題評論說。我該如何解決它?串接字母問題

#include <iostream> 
#include <cstdlib> 
#include <ctime> 
#include <string.h> 

using namespace std; 

int main() 
{ 
time_t t; 
srand((unsigned) time(&t)); 
int randNum = (rand() % 4); 


string animals[5] = { "dog", 
         "fox", 
         "wolf", 
         "cat", 
         "mouse" }; 

char letters_input; 
char placeholder = '_'; 
bool wordnotfound = true; 
char output; 
int cnt = 0; 

cin >> letters_input; 

while (wordnotfound) 
{ 
    string word = animals[4]; 
    for(int i=0;i<word.length();i++) 
    { 
     if (letters_input == word[i]) 
     { 
      //strcat(output,word[i]);  
      //output += word[i];   
     }  
     else 
     { 
      //strcat(output,placeholder); 
      //output += placeholder; 
      cnt++; 
     }  
    } 
    cout << output << endl; 
    if(cnt == 0) 
    { 
     wordnotfound = false; 
    } 
    else 
    { 
     cin >> letters_input; 
     cout << output << endl; 
    }  
} 
system("pause"); 
return 0; 

}

+2

'output'是'char'。一個'char'永遠只能容納一個角色的價值的數據。您因此使用了錯誤的類型。 – Jon

回答

1

的主要問題是,你會再做連接到單個字符

取而代之的是使字符串正確std::string,然後您可以使用+=表達式。

1

你在做什麼是這樣的:

char (=output) + string (=word) 

這不起作用,因爲你想一個string添加到char,但char只能容納一個字符。相反,您需要將輸出char*轉換爲std::string。你可以做如下:

std::string(output) + word; 

做到這一點在你的代碼然而,簡單地改變的char output類型std::string output最簡單的方法,然後徘徊無論你喜歡,你可以做output + word