2016-12-08 5 views
-3

привет Я пытаюсь прочитать, что входныеЧтение матрицы из CIN

2 
2 
9 97 
8 56 
3 
1 18 6 
16 42 100 
25 16 17 

Я не могу получить номера 9, 97, 8, 56 и хранить их в векторе

здесь моя попытка

using namespace std; 

int main() { 

    int test; 

    cin >> test; 

    while (test--) 
    { 
     int ss_i; 
     cin >> ss_i; 

     vector<int> A(ss_i*ss_i); 



    } 
    return 0; 
} 
+0

почему отрицая мой вопрос?! – Andre

+5

Это совершенно бессмысленный код. Вы просто создаете новый векторный экземпляр на каждой итерации: 'vector A (ss_i * ss_i);' (который можно считать NOP). –

+0

Почему я отказался от вашего вопроса? Ваши исследовательские усилия кажутся чрезвычайно низкими: https://www.google.de/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=c%2B%2B+read+a+matrix+from + cin Всплывающая подсказка DV-подсказки уже сообщает об этом вам. –

ответ

0

Вам необходимо заполнить string, а затем получить доступ к целые числа через std::istringstream. также рассмотреть push_back для хранения этих чисел в vector:

#include <vector> 
#include <iostream> 
#include <string> 
#include <sstream> 

int main(){ 

    int size{ 16 }; 

    std::vector<int> numbers; 
    numbers.reserve(size); //reserve memory 


    for (int i = 0; i < size;){ 
     std::string ss_i; //number(s) to push_back 


     std::cout << "Type in " << size - i << " more integers: "; 
     std::getline(std::cin, ss_i); 

     std::istringstream stringstream(ss_i); //load into stream 

     int n; 
     while (stringstream >> n){ 
      i++; 
      numbers.push_back(n); //add to the vector 
     } 
    } 

    std::cout << "The vector contains:\n"; 
    for (auto i : numbers){ 
     std::cout << i << ' '; 
    } 
    return 0; 
} 

Пример Run:

Type in 16 more integers: 2 
Type in 15 more integers: 2 
Type in 14 more integers: 9 97 
Type in 12 more integers: 8 56 
Type in 10 more integers: 3 
Type in 9 more integers: 1 
Type in 8 more integers: 18 6 
Type in 6 more integers: 16 42 
Type in 4 more integers: 100 25 16 17 
The vector contains: 
2 2 9 97 8 56 3 1 18 6 16 42 100 25 16 17 
+0

цифры не в столбце, номера разделены пробелом. – Andre

+0

это будет сложнее. Вам нужно будет работать со строками, чтобы это сделать. –

+0

, но мне жаль, что это не решение моей проблемы – Andre

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