Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94

Ввод двумерного динамического массива с консоли

24.04.2013, 17:54. Показов 4882. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, помогите пожалуйста, мне нужно ввести с консоли двумерный массив, мне известна максимальная длинна строки, но я не знаю максимальное количество этих строк. Как я понимаю нужно выделять память под строки по мере ввода, если я правильно понимаю то это можно сделать как-то с помощью malloc,realloc только хз как.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.04.2013, 17:54
Ответы с готовыми решениями:

Ввод-вывод двумерного динамического массива
Здраствуйте. Задана задача, в ходе которой нужно ввести динамический массив(каждый елемент с новой строчки), а затем вывести его уже как...

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include "math.h" void main() { setlocale(LC_ALL,"rus"); int...

Метод-член класса для создания одномерного массива из отрицательных элементов двумерного динамического массива
Помогите, пожалуйста, нужно разработать метод-член класса для создания одномерного массива из отрицательных элементов двумерного...

31
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,876
25.04.2013, 08:08
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от emmure Посмотреть сообщение
но вопрос остаётся открытым почему выдаёт ошибку
здесь???

Цитата Сообщение от emmure Посмотреть сообщение
delete(Arr[i]);
* * delete(Arr);
наверно надо написать так
C++
1
2
delete[] Arr[i];
delete[] Arr;
зачем это
Цитата Сообщение от emmure Посмотреть сообщение
y--;
0
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
25.04.2013, 09:21  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
здесь???



наверно надо написать так
C++
1
2
delete[] Arr[i];
delete[] Arr;
зачем это
C++
1
2
delete[] Arr[i];
delete[] Arr;
разницы нету
0
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
20.05.2013, 17:53  [ТС]
Здравствуйте. Нужна помощь, я бы хотел реализовать динамический ввод двух массивов, у меня 2 вопроса.
1)Почему выдаёт ошибку (1>c:\users\pavel\documents\visual studio 2010\projects\firma\firma\firma.cpp(375) : error C2065: numberELemFirma: необъявленный идентификатор) я же вроде его обьявил.
2)Соответственно как сделать выход из цикла по вводу массива после 2 нажатия enter, то есть если бы это был не int массив я бы написал
C++
1
2
if (str[i]=='\n')
            break;
но так как это интовский массив, если я правильно понимаю он не считывает '\n', а так и оставляет её в потоке ввода, возможно можно как нибудь считать '\n' с потока ввода.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class firma
{
public:
    int *rating;
    int *number;
    int numberElemFirma;
    firma();
    ~firma();
    void inputFirma();
};
firma :: firma()
{
    rating = NULL;
    number = NULL;
    numberElemFirma = 0;
}
firma :: ~firma()
{
    rating = NULL;
    delete[] rating;
    number = NULL;
    delete[] number;
    numberElemFirma  = 0;
}
void firma :: inputFirma()
{
    while (true)
    {
        rating = (int*)realloc(rating,(numberElemFirma+1)*sizeof(int));
        number = (int*)realloc(number,(numberElemFirma+1)*sizeof(int));
        cout<<"Введите номинал"<<endl;
        cin >> rating[numberElemFirma];
        cout<<"Введите количество номинала"<<endl;
        cin >> number[numberELemFirma];
        cin.ignore(numeric_limits<streamsize>::max(), '\n');
        numberELemFirma++;
    }
};
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
20.05.2013, 18:17
emmure, numberELemFirma - ошибка. А выход через ctrl+c можно сделать
1
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
20.05.2013, 18:30  [ТС]
Цитата Сообщение от nexen Посмотреть сообщение
emmure, numberELemFirma - ошибка. А выход через ctrl+c можно сделать
А точно спасибо а можно поподробнее о ctrl+c
0
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
20.05.2013, 18:42
emmure, ох, или ctrl+z.. Я уж и не помню >_< Если кто-нибудь ещё в темку заглянет, то отпишитесь об этом?
0
101 / 102 / 43
Регистрация: 06.03.2012
Сообщений: 478
20.05.2013, 18:42
emmure, можно попробывать использовать перевод строки в целочисленный тип
C++
1
atoi ()
,но не уверен...
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.05.2013, 18:46
Цитата Сообщение от nexen Посмотреть сообщение
или ctrl+z
В Windows генерирует EOF.

Добавлено через 1 минуту
Цитата Сообщение от emmure Посмотреть сообщение
cin.ignore(numeric_limits<streamsize>::m ax(), '\n');
Эта строчка зачем?
1
187 / 180 / 25
Регистрация: 27.01.2012
Сообщений: 1,335
20.05.2013, 18:50
emmure, как сказал alsav22, можно пробовать feof на stdin для проверки ctrl+c. Примерно так:
C++
1
2
3
4
5
6
7
8
9
while (true)
{
cin << number;
if (feof(stdin)) break;
else
{
// do something with number
}
}
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.05.2013, 18:55
C++
1
if (cin.eof()) break;
Добавлено через 1 минуту
Ctrl + z
2
3 / 3 / 0
Регистрация: 15.12.2012
Сообщений: 94
20.05.2013, 19:14  [ТС]
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
if (cin.eof()) break;
Добавлено через 1 минуту
Ctrl + z
щас попробую

C++
1
cin.ignore(numeric_limits<streamsize>::max(), '\n');
это для очистки потока ввода, мне потом ещё и строки надо вводить

Добавлено через 10 минут
если я правильно понял
C++
1
if (cin.eof()) break;
выходит из цикла если в консол ввести ctrl+z,
И ещё если не затруднит не могли бы вы обьяснить что эта за функция
C++
1
(cin.eof())
, или дать какую нибудь ссылку
0
5500 / 4895 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
20.05.2013, 19:21
Цитата Сообщение от emmure Посмотреть сообщение
мне потом ещё и строки надо вводить
Тогда понятно.
Цитата Сообщение от emmure Посмотреть сообщение
что эта за функция
Член класса ios. Возвращает true, если при вводе обнаружен конец потока ввода.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2013, 19:21

Cоздание двумерного динамического массива
как задать двумерный массив , границы которого m и n вводятся с клавиатуры? для одномерного массива есть команда int *a=new int; ...

Поворот динамического двумерного массива
Доброго времени суток. Столкнулся с такой проблемой что не могу развернуть динамический двумерный массив. Результат выводит плачевный: ...

Заполнение двумерного динамического массива
Объявить и заполнить двумерный динамический массив случайными числами от 10 до 50. Показать его на экран. Для заполнения и показа на экран...

Заполнение двумерного динамического массива
Здравствуйте. Подскажите как реализовать заполнение массива в консоли таким способом что все числа в строке вводятся через пробел и идет...

Заполнение двумерного динамического массива
int **Create(int size1, int size2) { int **Arr = new int*; for (int i = 0; i &lt; size1; i++) Arr = new int; return Arr; } ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
32
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru