2015-12-12 92 views
-5

我嘗試用單詞填充二維數組。我已將臨時字符串「切片」爲存儲在臨時一維數組中的單個字符。在主'for'循環結束時,我想重置所有臨時變量。問題是我無法清除整數。任何想法如何繼續?如何在C++中清除()整數

#include <iostream> 
#include <cstring> 
using namespace std; 
int main() 
{ 
for(int j=0; j!=4; j++) 
{ 
    if (j==0) 
    cout << "text1: \n"; 
    else if(j==1) 
    cout << "text2: \n"; 
    else if(j==2) 
    cout << "text3: ?\n"; 
    else if(j==3) 
    cout << "text4: \n"; 
    string temp; getline(cin, temp); 
    int lenght = temp.size(); 
    char test[lenght+1]; 
    strcpy(test, temp.c_str()); 
    char tab[4][lenght]; 
    for(int i=0; i!=lenght+1; i++) 
    { 
     tab[j][i]=test[i]; 
    } 
    temp.clear(); 
    lenght.clear(); //error 
    test.clear(); 
} 
    return 0; 
} 

,這是錯誤

/root/Dokumenty/fgfg/main.cpp|26|error: request for member ‘clear’ in ‘lenght’, which is of non-class type ‘int’| 
+0

'length'是類型'int'。你爲什麼要調用'clear()'? – pzaenger

+0

清除流或緩衝區我不知道。我是begginer。 – sebek

+0

看起來你甚至不知道你想做什麼。你需要首先自己弄清楚。如果你甚至不知道該問什麼,這裏沒有人可以幫你解答。 –

回答

3

我要重置所有臨時變量

爲什麼?這個要求似乎完全是任意的。

此外,它沒有任何意義,因爲C++已經爲你做了這些:這些變量被綁定到循環的範圍。每次循環迭代時,都會得到新版本的變量。一次迭代的整數與最後一次迭代的整數無關。

當然要「清除」一個整數,一般情況下,您只需將其設置爲您初始化的任何值,例如, 0

順便說一句,那不是我們拼寫「長度」的方式。