2015-12-12 2 views
-5

Я пытаюсь заполнить двумерный массив словами. Я «нарезал» временную строку на отдельные символы, хранящиеся во временном массиве измерений. в конце цикла «for» я хочу сбросить все временные переменные. Проблема в том, что я не могу очистить целое число. Любые идеи, как действовать?Как очистить() integer в 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

очистить поток или буфер, который я не знаю. Я начинаю. – sebek

+0

Похоже, вы даже не знаете, что хотите. Вы должны понять это, во-первых, самостоятельно. Никто здесь не может помочь вам с ответом, если вы даже не знаете, что спросить. –

ответ

3

я хочу, чтобы сбросить все временные переменные

Почему? Это требование представляется совершенно произвольным.

Кроме того, это не имеет никакого смысла, поскольку C++ уже делает это для вас: эти переменные привязаны к сфере действия цикла. Каждый раз, когда цикл повторяется, вы получаете новые версии переменных. Целые числа одной итерации не связаны с целыми числами последней итерации.

Конечно, чтобы «очистить» целое число, вы просто установите его на то, что вы его инициализировали, например. 0.

Кстати, это не то, как мы произносим «длину».