2016-03-30 91 views
0

有人可以爲我糾正這個代碼,所以它可以產生正確的輸出。 代碼是顯示患者的姓名, 醫生對他/她的治療, 他/她治療的房間。C++多維字符串數組

#include <iostream> 
using namespace std; 

int main() 
{ 
    string bisi[3][4] = {{"  ", "DOCTOR 1", "DOCTOR 2", "DOCTOR 3"}, 
{"ROOM 1", "AFUAH", "ARABA", "JOHNSON"}, 
{"ROOM 2", "BENJAMIN", "KOROMA", "CHELSEA"}}; 

    for (int row=0; row<3; row++){ 
     for (int col=0; col<4; col++){ 
      cout<<bisi [row][col]<<" "; /*I get error on this line.The angle bracket "<<" Error Message: No operator matches this operand.*/ 
     } 
     cout<<endl; 
    } 

    return 0; 
} 
+1

您能否確定'bisi'的每個元素應該是什麼意思(以及它們的關係應該是什麼)。也許向我們展示你想看到的輸出。 –

+1

我接受這個作爲初學者的測試程序。但請注意,慣用的C++不會像這樣在多維(C ...)數組中建模患者/醫生/房間關係。如果您使用C++利用其功能和庫,您將擁有'class Doctor','class Patient',... – DevSolar

+0

。使用一個向量。如果不是簡單地使用普通的C。 – blade

回答

3

你需要改變:

cout << bisi[row] << bisi[col] << " "; 

到:

bisi是一個二維數組,bisi[row]bisi[col]將只打印您的地址

+0

我用cout << bisi [row] [col] <<「」;但我得到這個「<<」錯誤@DimChtz –

+0

@Sir_Martins你能用新的代碼和你得到的錯誤更新這個問題嗎? – DimChtz

+0

我將我的數據類型從「字符串」更改爲「int」,代碼正常工作,沒有錯誤。 –

1

從一個對象以人爲本的觀點,這是不好的風格。將信息包裝在一個班級中。例如

struct Appointment 
{ 
    std::string patient; 
    std::string doctor; 
    std::string room; 
} 

,並存儲在某種收集的信息:

std::vector<Appointment> appointments; 
appointments.emplace_back({"henk", "doctor bob", "room 213"}); 
appointments.emplace_back({"jan", "doctor bert", "room 200"}); 

印刷然後可以通過做:

for (const auto &appointment: appointments) 
{ 
    std::cout << appointment.patient 
      << appointment.doctor 
      << appointment.room 
      << std::endl; 
} 
0

我剛添加的預處理指令#include < 「串」 >沒有引號,它工作正常。 謝謝你們幫忙。