Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
#1

Считывание нескольких чисел - C++

24.03.2011, 13:36. Просмотров 960. Ответов 10
Метки нет (Все метки)

Суть стоящей передо мной задачи такова - мне нужно ввести несколько чисел через пробел, например 1 12 49 2 (их количество заранее неизвестно), т.к эти числа не только от 0 до 9, то простой перевод введенной строки в массив с числами не помогает. Помогите, пожалуйста, понятия не имею, как это сделать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2011, 13:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание нескольких чисел (C++):

Считывание нескольких строк с пробелами - C++
итак, есть код ввода списка учеников и вывода имени по номеру. #include <iostream> using namespace std; int main() { char...

Считывание нескольких матриц из файла - C++
Зжравствуйте ,помогите с решением такой задачи. Есть файл , в нем хранится матрица.эта матрица считывается в двумерный массив . в...

Считывание нескольких строк с пробелами - C++
Я знаю, что есть функция getline. Но если мне в коде надо считать несколько разных строк с пробелами, что мне делать? Потому что при...

Считывание нескольких матриц из файла (C) - C++
Всем добрый день. Есть такой вопрос. Имеется текстовый файл, в котором записаны четыре матрицы 4х4, разделенные пустыми строками, как-то...

Последовательное считывание нескольких символов из файла - C++
Здравствуйте. Нужен способ, позволяющий посчитать частоту встречаемости последовательности в тексте, например, абваба в аабвабабваба -...

Считывание нескольких строк из терминала, наподобие bash - C++
понравилась как в bash можно задавать команды из нескольких строчек echo 'some text' sed ' command command ...

10
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 13:40 #2
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <vector>
#include <iterator>
 
int main(){
  std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
  for(int i = 0; i < vec.size(); ++i)
    std::cout << vec[i] << ' ';
  return 0;
}
Для завершения ввода -> Ctrl+Z
1
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
24.03.2011, 13:59  [ТС] #3
Спасибо, моя программа работает в цикле, как сделать, чтобы эти значения сбрасывались при следующей итерации цикла?
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 14:03 #4
vec.clear() - очистка вектора.
1
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
24.03.2011, 16:54  [ТС] #5
Всё равно не работает, в первый раз все правильно считывает, но в следующий просто пропускает считывание.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream.h>
#include<vector.h>
#include<iterator.h>
int len[10],m,paths[10][10];
 
 
void main()
{
  m=2;
  for (int j=0;j<m;j++)
  {
    printf ("\nVvedite marshrut ");
     std::vector<int> vec((std::istream_iterator<int>(std::cin)), std::istream_iterator<int>());
    for (int i=0; i<vec.size(); i++)
    {
      std::cout << vec[i] << ' ';
      paths[j][i]=vec[i];
    }
    len[j]=vec.size();
    vec.clear();
  }
}
Добавлено через 2 часа 14 минут
Насколько я понимаю, вектор таким образом объявлять нельзя

Добавлено через 54 секунды
именно в цикле
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 17:18 #6
eternalfame, Ану попробуй так
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
#include<iostream>
#include<vector>
#include<iterator>
#include <cstdio>
int len[10],m,paths[10][10];
 
 
int main()
{
  m=2;
  std::vector<int> vec;
  int temp;
  for (int j=0;j<m;j++)
  {
    printf ("\nVvedite marshrut ");
     while(std::cin >> temp)
       vec.push_back(temp);
    std::cin.clear();
    for (int i=0; i<vec.size(); i++)
    {
      std::cout << vec[i] << ' ';
      paths[j][i]=vec[i];
    }
    len[j]=vec.size();
    vec.clear();
  }
}
0
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
24.03.2011, 17:41  [ТС] #7
Не помогает) Во второй раз так же пропускает считывание

Добавлено через 7 минут
Проблема кажется именно в том, что он не завершает cin
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 17:51 #8
Цитата Сообщение от eternalfame Посмотреть сообщение
Во второй раз так же пропускает считывание
Незнаю, у меня нормально работает:
0
Миниатюры
Считывание нескольких чисел  
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
24.03.2011, 18:03  [ТС] #9
вот как у меня:
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
#include<iostream>
#include<conio>
#include<stdio>
#include<vector>
#include<iterator>
#include <cstdio>
int len[10],m,paths[10][10];
 
 
int main()
{
  m=2;
  std::vector<int> vec;
  int temp;
  for (int j=0;j<m;j++)
  {
    printf ("\nVvedite marshrut ");
     while(std::cin >> temp)
       vec.push_back(temp);
    std::cin.clear();
    for (int i=0; i<vec.size(); i++)
    {
      std::cout << vec[i] << ' ';
      paths[j][i]=vec[i];
    }
    len[j]=vec.size();
    vec.clear();
  }
  printf ("\nend");
  getch();
}
0
Миниатюры
Считывание нескольких чисел  
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
24.03.2011, 18:24 #10
eternalfame, Когда ты ввел первую строку чисел, нажимаеш Enter ,а уже потом Ctrl + Z и снова Enter, пробуй так.
1
eternalfame
0 / 0 / 0
Регистрация: 24.03.2011
Сообщений: 7
24.03.2011, 18:36  [ТС] #11
ооо, все, большое спасибо!)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2011, 18:36
Привет! Вот еще темы с ответами:

Считывание Значений С Нескольких Полей Ввода(ТекстКтрл) - C++
Сейчас для того чтобы получить значение с поля ввода и записать его в массив делаю так: I(0) = atoi(TextCtrl1-&gt;GetValue()); I(1) =...

Считывание из одной строки. Как сделать из нескольких? - C++
#include &quot;stdafx.h&quot; #include &lt;iomanip&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale.h&gt; #include &lt;fstream&gt; #include...

Запросить ввод нескольких чисел, и определить, сколько из этих чисел отрицательны - C++
Привет всем!Прошу помочь мне в решении задачи!Надо написать такую программу,чтобы она просила пользователя ввести несколько чисел и потом...

Как найти НОК и НОД нескольких чисел или n чисел ? - C++
Собственно вопрос в теме . Как найти двух чисел нод ,нок я могу .А как это найти НОД,НОК n чисел ? Помогите пожалуйста !


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

Или воспользуйтесь поиском по форуму:
11
Yandex
Объявления
24.03.2011, 18:36
Ответ Создать тему
Опции темы

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