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

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

Восстановить пароль Регистрация
 
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 21:28     Считывание строки в массив цифр #1
Как считать строку в массив чисел? Покажите работающий пример, который бы компиллировался в http://ideone.com/?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2014, 21:28     Считывание строки в массив цифр
Посмотрите здесь:

считывание строки из файла C++
C++ считывание строки
C++ считывание строки. С++
C++ Считывание строки в символьный массив
Считывание строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
S_el
1908 / 1503 / 296
Регистрация: 15.12.2013
Сообщений: 5,921
03.08.2014, 21:33     Считывание строки в массив цифр #2
MahovIV, как вы строку собираетесь поместить в число?
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 21:37  [ТС]     Считывание строки в массив цифр #3
не в число, а в массив. Каждый элемент строки перевести элемент массива?
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
03.08.2014, 22:17     Считывание строки в массив цифр #4
MahovIV,

Не по теме:

ээээ. джава ?

MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 22:18  [ТС]     Считывание строки в массив цифр #5
c++.
druidich
 Аватар для druidich
30 / 30 / 4
Регистрация: 21.05.2012
Сообщений: 428
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
    }
}
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 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;
}
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
03.08.2014, 22:27  [ТС]     Считывание строки в массив цифр #8
А если мне нужно вводить строку с клавиатуры и перевести в массив целых чисел?
rikimaru2013
C++ Game Dev
 Аватар для rikimaru2013
2139 / 972 / 223
Регистрация: 30.11.2013
Сообщений: 3,241
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
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 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;
}
GetHelp
-8 / 60 / 6
Регистрация: 27.02.2013
Сообщений: 1,112
04.08.2014, 15:19     Считывание строки в массив цифр #11
Цитата Сообщение от DiffEreD Посмотреть сообщение
for (auto i : vd)
что значит такая запись цикла?
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
04.08.2014, 15:21     Считывание строки в массив цифр #12
Диапазонный for
orange_fox
 Аватар для 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;
}
Считывание строки в массив цифр
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
04.08.2014, 20:38  [ТС]     Считывание строки в массив цифр #14
Добавлено через 7 минут
Такой код не работает на http://ideone.com/. Мне нужно чтобы код работал так.
При вводе
1234
должно отображать
1
2
3
4
orange_fox
 Аватар для 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
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
04.08.2014, 21:26  [ТС]     Считывание строки в массив цифр #16
А как выглядит программа, если используется тип данных string?
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 21:43     Считывание строки в массив цифр #17
MahovIV, Вместо какого типа данных? Процитируйте строчку кода
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
04.08.2014, 21:45  [ТС]     Считывание строки в массив цифр #18
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[quote="orange_fox;6489786"]#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;
}
Вместо char использовать string.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 22:04     Считывание строки в массив цифр
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
orange_fox
 Аватар для orange_fox
34 / 34 / 6
Регистрация: 06.04.2014
Сообщений: 189
04.08.2014, 22:04     Считывание строки в массив цифр #19
А зачем использовать string для хранения одного символа?
Yandex
Объявления
04.08.2014, 22:04     Считывание строки в массив цифр
Ответ Создать тему
Опции темы

Текущее время: 16:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru