Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
MahovIV
5 / 6 / 4
Регистрация: 17.09.2013
Сообщений: 337
#1

Ввод массива не зная размера

26.10.2014, 18:47. Просмотров 1123. Ответов 4
Метки нет (Все метки)

В языке Си это делается так.
C
1
while(scanf("%d", &a[i])!=EOF)
А как сделать то же самое на C++?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2014, 18:47
Ответы с готовыми решениями:

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

Пирамидальная сортировка, добавить ввод размера массива пользователем
Есть программа для пирамидальной сортировки. Как сделать так чтобы пользователь...

Быстрая сортировка (добавить ввод размера массива пользователем)
Есть программа для быстрой сортировки на C++. Как сделать так, чтобы...

Заполнить вектор с клавиатуры, не зная размера
Привет всем. Я вот хочу заполнить вектор с клавиатуры. Я уже знаю, как его...

Ввод двумерного массива, ввод размерности массива, заполнение массива случайными числами
#include "stdafx.h" #include "locale.h" #include "stdlib.h" #include...

4
Wiiiiijjj
18 / 18 / 18
Регистрация: 25.08.2014
Сообщений: 186
26.10.2014, 18:51 #2
Отсюда

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// numbers
int n;
while (std::cin >> n)
{
   ...
}
 
// lines
std::string line;
while (std::getline(std::cin, line))
{
   ...
}
 
// characters
char c;
while (std::cin.get(c))
{
   ...
}
0
Andrej
И целого heap'а мало
94 / 55 / 17
Регистрация: 31.07.2014
Сообщений: 291
27.10.2014, 00:48 #3
MahovIV,
C++
1
2
3
4
5
6
7
8
9
10
11
#import <vector>
#import <iostream>
 
...
 
std::vector<char> vector; // контейнер, сам нарастит размер, если нужно
vector.reset(1000); // если заранее знаешь примерный размер, то можно захватать памяти
 
for (char tmp; std::cin >> tmp; ) {
    vector.push_back(tmp);
}
Добавлено через 21 секунду
там не импорт, а инклуд
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
27.10.2014, 06:39 #4
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
#include <iostream>
#include <stdlib.h>
 
using namespace std;
 
 
int main(){
 
 
  int count = 0;  //индекс//В данном случае он же количество элементов.
  int* a = NULL; //Массив
 
 
  cout<<"Вводи числа через пробел. Закончи точкой\n";
  do {
 
     count++;
     a = (int*) realloc (a, count * sizeof(int));
 
  } while (cin>>a[count-1]);
 
 
    cout<<"\nResult: ";
    for (int i=0;i<count-1;i++) cout<<a[i]<<"  ";
    cout<<"\n";
 
 
 
    free(a);
    a=NULL;
 
 
}
0
Миниатюры
Ввод массива не зная размера  
Ilot
Эксперт С++
1830 / 1188 / 342
Регистрация: 16.05.2013
Сообщений: 3,139
Записей в блоге: 5
Завершенные тесты: 1
27.10.2014, 08:41 #5
Цитата Сообщение от MahovIV Посмотреть сообщение
А как сделать то же самое на C++?
Так же, передав массив по ссылке. Подробнее здесь.
0
27.10.2014, 08:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.10.2014, 08:41

Как правильно скопировать void* v_buf в char* c_buf, не зная размера v_buf
Всем привет! У меня есть указатель типа void на здоровенный кусок данных. Эти...

Массивы (ввод размера с клавиатуры)
Доброго времени суток. Вопрос теоретический. При создании массива, если я...

Как осуществить ввод числа, не зная какой тип числа будет введён?
И не объявляя вводимую переменную как double...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru