2014-02-07 56 views
0

我在C++中編寫了一些代碼來練習製作函數,並遇到了一個字符串數組的問題,我想在一個函數中定義特定元素,然後在另一個函數中輸出這些元素。到目前爲止,我只完成了輸入部分的代碼。當我運行該程序時,它會在第二次詢問播放器名稱時停止響應。我有我的陣列,p[1],定義爲std::string,否則當我嘗試運行getline(cin, p[x])時會出現錯誤。關於爲什麼程序停止運行以及如何創建我想要的陣列的任何見解?C++中的全局字符串數組

我的代碼:

#include <stdio.h> 
#include "simpio.h" 
#include "strlib.h" 
#include "iostream.h" 

int Hp[1], Atk[1], Ddg[1]; 
std::string p[1]; 

void player(int x){ 
    cout<<"Player name: "; 
    getline(cin, p[x]); 
    cout<<"\tHp: "; 
    cin>>Hp[x]; 
    cout<<"\tAtk: "; 
    cin>>Atk[x]; 
    cout<<"\tDdg: "; 
    cin>>Ddg[x]; 
    } 

main(){ 
    string go; 

    player(0); 
    player(1); 

    cout<<"Go? (Yes/No): "; 
    cin>>go; 
    cin.get(); 

} 
+4

爲了使陣列有一個指標1,它需要有大小至少2. – Brian

回答

1

您需要更改

std::string p[1]; 

std::string p[2]; // have size=2 (at least) so you can access p[1] later 
+0

如果我使用p [2],我的元素是{p [0],p [1]}還是{p [1],p [2]}? – SkippyNBS

+2

@ i5a1ah第一個索引是0,第二個= 1,等等...... – alexolut

+0

謝謝;這就是我的想法,但我不確定 – SkippyNBS