2012-12-28 213 views
0
int lineInputs = 0; 

cin >> lineInputs; 

int whatever = 0; 

char* myArray = new char[arrayElements*lineInputs]; 

int j =0; 

for(int i = 0; i < lineInputs; i++) 
{ 
     cin >> whatever; 
    for(j; j<total; j+=39) 
    { 
     for(int nom=0; j<arrayElements; nom++) 
     { 
      cin >> myArray[j]; 
     } 
    } 

} 

在我的for循環的說,我有lineInputs = 4total = 156for循環線陣列

含義4倍,我們做到這一點,我們要插入字符156到我的陣列。但是我們希望能夠讓每40個字符繼續進入陣列。

按照我們的要求,我們需要將這個輸入插入到數組中,但我覺得我的forloops已經搞亂了。 這將是輸入

4 
1 
HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 
2 
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT 
3 
HHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTH 
4 
HTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT 

這些40個字符的行的第一行4含義4。字符線上方的數字僅表示1 2 3 4等。

我該如何嘗試這個權利?

所以數組基本看起來像這樣。

HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTHHTTTHHTTTHTHHTHHTTHTTTHHHTHTTHTTHTTTHTHHTHTHHHTHHHTHTHHHHTTTHTTTTTHHTTTTHTHHHHT

+1

我建議停止混合C和C++:使用'std :: string'而不是'char *'。 (這不能解決你的問題,但它傷害了我的眼睛)順便說一下'arrayElements'是什麼?它沒有在任何地方指定。 – stefan

回答

1

你是讓你在你的其他問題,這是不能正確對待輸入數組由相同的根本錯誤。您重複讀入myArray的前40個字符。你需要做的是將第一行寫入前40個字符,第二行寫入字符40至79等。

更好的是,使它成爲一個二維數組,以便您不必四處亂撥與計算指數。

更好的是,使其成爲std::string而不是數組char

+0

爲什麼字符串會更好只是好奇? – mystycs

+0

其實2維聽起來不錯,我剛剛意識到。我試着實現這一點。 – mystycs

+0

@sonicboom對於char *與std :: string:請參閱http://stackoverflow.com/questions/801209/c-char-vs-stdstring – stefan