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

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

Войти
Регистрация
Восстановить пароль
 
 
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
#1

Считывание строки в массив цифр - C++

03.08.2014, 21:28. Просмотров 803. Ответов 18
Метки нет (Все метки)

Как считать строку в массив чисел? Покажите работающий пример, который бы компиллировался в http://ideone.com/?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2014, 21:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание строки в массив цифр (C++):

Считывание строки в символьный массив - C++
1. Ввод из коммандной строки, число символов неизвестно. 2. Ввод из текстового файла, число символов неизвестно. Например, int...

Преобразование строки в массив цифр - C++
Помогите разобраться с функцией для преобразования строки в массив цифр. void readlong (type &vec) { std::string str; ...

Считывание символов и цифр с клавиатуры - C++
Как сделать так, чтобы считывая строку программа заносила символы в один список, а цифры в другой. Например: ввожу в консоли 2+3-5= в...

Вводится две строки, состоящие из цифр; из этих цифр составить максимальное число - C++
Доброго времени суток! Нужно написать программу, где на экране вводится две строки состоящие из цифр, Из этих цифр составить максимальное...

Сформировать массив десятичных цифр числа А. Элементы массива цифр сдвинуть циклически влево на 1 позицию - C++
дано целое десятичное число А. Сформировать массив десятичных цифр числа А. Элементы массива цифр сдвинуть циклически влево на 1 позицию ....

считывание строки. С++ - C++
Строка считывается посимвольно буквами. а надо, чтобы словами.. как это сделать? FILE *fp2 = fopen("V.txt", "rb"); //открываем файл...

18
S_el
2109 / 1628 / 308
Регистрация: 15.12.2013
Сообщений: 6,530
03.08.2014, 21:33 #2
MahovIV, как вы строку собираетесь поместить в число?
0
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 21:37  [ТС] #3
не в число, а в массив. Каждый элемент строки перевести элемент массива?
0
druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 440
03.08.2014, 22:17 #4
MahovIV,

Не по теме:

ээээ. джава ?

0
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 22:18  [ТС] #5
c++.
0
druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 440
03.08.2014, 22:20 #6
MahovIV,
Цитата Сообщение от MahovIV Посмотреть сообщение
Покажите работающий пример, который бы компиллировался в http://ideone.com/?
зашел а там вроде как джава.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* package whatever; // don't place package name! */
 
import java.util.*;
import java.lang.*;
import java.io.*;
 
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
    public static void main (String[] args) throws java.lang.Exception
    {
        // your code goes here
    }
}
0
igorrr37
1648 / 1276 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
03.08.2014, 22:23 #7
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
#include <iostream>
#include <string>
#include <sstream>
 
int main()
{
    std::string str(" 15.2, 5.5, 5.661 ");
    std::stringstream sstr(str);
    double arr[50];
    int siz = 0;
    while(true)
    {
        sstr >> arr[siz];
        if(sstr)
        {
            std::cout << arr[siz] << '\n';
            ++siz;
        }
        else if(sstr.eof())
        {
            break;
        }
        else
        {
            sstr.clear();
            sstr.get();
        }
    }
    return 0;
}
0
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 22:27  [ТС] #8
А если мне нужно вводить строку с клавиатуры и перевести в массив целых чисел?
0
rikimaru2013
C++ Game Dev
2438 / 1132 / 240
Регистрация: 30.11.2013
Сообщений: 3,688
03.08.2014, 22:45 #9
Цитата Сообщение от MahovIV Посмотреть сообщение
А если мне нужно вводить строку с клавиатуры и перевести в массив целых чисел?
Ввод без велосипеда массив чисел:
C++
1
1.15 7 909 13.13 99.11
Ввод с велосипедом массив чисел:
C++
1
1.15, 7, 909, 13.13, 99.11
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.08.2014, 11:11 #10
Может пригодится такой вариант:
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <boost/algorithm/string.hpp>
#include <boost/lexical_cast.hpp>
 
template <typename T>
std::vector<T> to_vector(const std::string& s, const std::string& separatprs = " ,")
{
   std::vector<std::string> v;
   boost::split(v, s, boost::is_any_of(separatprs), boost::token_compress_on);
 
   std::vector<T> res(v.size());
   auto convert = [](const std::string& s){return boost::lexical_cast<T>(s);};
   std::transform(v.begin(), v.end(), res.begin(), convert);
   return res;
}
 
int main()
{
   std::string str = "12.3 78 23.6 1.02 12";
   std::vector<double> vd = to_vector<double>(str);
   for (auto i : vd)
      std::cout << i << " ";
 
   return 0;
}
0
GetHelp
-7 / 61 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
04.08.2014, 15:19 #11
Цитата Сообщение от DiffEreD Посмотреть сообщение
for (auto i : vd)
что значит такая запись цикла?
0
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.08.2014, 15:21 #12
Диапазонный for
0
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 20:19 #13
Код несложный и без всяких бустов
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
using namespace std;
 
int main()
{
    cout << "Input doubles:" << endl;
    vector<double> arr;
    double buff;
    while (cin.peek() != '\n')
    {
        cin >> buff;
        arr.push_back(buff);
    }
    //Проверка
    for (unsigned i = 0; i < arr.size(); ++i)
        cout << arr[i] << endl;
    system("pause");
    return 0;
}
Считывание строки в массив цифр
0
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
04.08.2014, 20:38  [ТС] #14
Добавлено через 7 минут
Такой код не работает на http://ideone.com/. Мне нужно чтобы код работал так.
При вводе
1234
должно отображать
1
2
3
4
0
orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 20:53 #15
Дык написал бы, что тебе ЦИФРЫ нужны, а не числа... Сейчас переделаю.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <cctype>
#include <vector>
 
using namespace std;
 
int main()
{
    cout << "Input digits:" << endl;
    vector<short>arr;
    char buff;
    while (isdigit(buff = cin.get()))
        arr.push_back(buff - '0');
    //Проверка
    for (unsigned i = 0; i < arr.size(); ++i)
        cout << arr[i] << endl;
    system("pause");
    return 0;
}
Считывание строки в массив цифр
http://ideone.com/41CIzc
0
04.08.2014, 20:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 20:53
Привет! Вот еще темы с ответами:

Считывание строки - C++
В общем появилась у меня недавно необходимость чужой код из консоли перевести в форму. Все функции подключил к контролам но 1 строку кода...

считывание строки - C++
ввело в ступор... как считать строку без применения стринга..ну т.е.: char a; cin &gt;&gt; a; как мне теперь считать строку...какой...

Считывание пустой строки - C++
юзаю std::cin для считывания в строку std::string, проблема в том что если ничего не вводить, а просто нажать enter, то программа...

Бесконечное считывание строки - C++
Здравствуйте! Столкнулся со странной проблемой...Есть функция,которая считывает данные из файла, там есть такой кусок кода: ...


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

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

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