2013-02-12 2 views
-1

Скажем, например, я хочу создать набор из 6 чисел. Но пользователь будет записывать их в этом формате.cin Создать массив, но игнорировать некоторые символы на CIN

[1 2 3 4 5 6]

Есть ли способ спроектировать так, что [] игнорируются или не помещаются в массив, который я создал?

Как если бы было ввести 1 2 3 4 5 6 все было бы хорошо. Если бы я должен был войти [1 2 3 4 5 6], очевидно, у меня были бы проблемы. Есть ли способ определить, что [] следует игнорировать или даже не вводить в массив во входных данных?

Ниже, используя оператор перегрузки, где информация i cin. Первые два значения - это только размеры моего 2d-массива. Поэтому, если бы я должен был ввести [2 2 5 3 5 3], он вводил бы только значения после 2 2, которые являются размером массива i. Но мне нужно обрабатывать эти символы [ ], чтобы они не конфликтуют. Какой был бы лучший способ исправить это?

friend istream& operator>>(istream& is, Array<T> &array) 
{ 
    int rowX, colY; 
    is >> rowX; 
    is >> colY; 

    array.create(rowX, colY); 

    for(int i = 0; i<array.numRowX(); i++) 
     for(int j = 0; j<array.numColY(); j++) 
     { 
      T data; 
      is >> data; 
      array.setarray(i, j, data); 
     } 

    return is; 
} 
+1

Я ответил на ваш вопрос, а затем вы удалили его. Это ужасно раздражает. –

+0

Ой дерьмо извините! Я хотел перефразировать все, что я, возможно, не видел :(извините – mystycs

+1

Тогда просто отредактируйте свой вопрос, не удаляйте его. –

ответ

3

Вы можете использовать переменную для чтения ввода, которую вы хотите игнорировать. Если вы просто пропуск одного символа, что-то, как это должно работать:

char ignoreChar; 

is >> ignoreChar; // Should be a '[' 

// for loop goes here 

is >> ignore; // Shoudl be a ']' 

Вы можете добавить, если заявления, чтобы убедиться, что игнорировали персонаж на самом деле то, что вы ожидаете, что это будет.

В качестве альтернативы вы можете читать целую строку в виде строки и извлекать нужную вам информацию. Это называется синтаксический анализ строк.

Смежные вопросы