На вход даются целые числа. На каждой строке находится какое-то количество этих целых чисел (может и вообще их не быть). Мне нужно переместить целые числа в i-й строке в массив с номером i. Пример:
4 //количество строк 2 3 //числа которые должны попасть в 1 массив 3 //число которое должно попасть во 2 массив //3-й массив должен остаться пустым 2 //в 4-й массив соответственно должно попасть число на 4 строчке
Можно ли считать данные без использования string и char[] и если да, то как?
Нет. Поскольку у вас количество чисел в строке не фиксировано, вам нужно считывать строки целиком, а затем их обрабатывать. Например, что-то типа (набросок, не более того)
in >> N;
for(int i = 1; i <= N; ++i)
{
getline(in,s);
istringstream is(s);
while(is >> n) { /* Вносим n в i-й массив */ };
}
Да. Например при помощи std::istream::peek() вы можете подсмотреть какой следующий символ в потоке не извлекая его, и если там конец строки, то считать что эта строка закончилась и переходить к следующей. Но такой подход создает дополнительные трудности. Если вы избегайте строк потому что не знакомы с ними, то лучше познакомьтесь, если это такое задание, то у вас очень коварный учебник/преподаватель/интервьюер.
Решение без строк, но с ошибками(если пользователь введет пробелы в конце строки):
#include <iostream>
#include <vector>
#include <limits>
int readInt(){
int value;
std::cin >> value;
return value;
}
bool isEndOfLine(){
int next = std::cin.peek();
return next == '\n' || next == EOF;
}
void skipLine(){
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
}
int main(){
int size;
std::cin >> size;
skipLine();
std::vector<std::vector<int> > data(size);
for(int i = 0; i < size; ++i){
while(!isEndOfLine()){
data[i].push_back(readInt());
}
skipLine();
}
//...
}
http://cpp.sh/7fhsy
Для хранения данных использовал вектора, потому что с ними проще управляться чем с массивами, но на суть решения это не повлияло.
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники