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

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

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

Перевод символьной строки в массив вещественных чисел - C++

24.01.2014, 14:01. Просмотров 592. Ответов 5
Метки нет (Все метки)

Помогите написать программу перевода введенной с клавиатуры строки в массив вещ-ых чисел, не используя scanf.
Чем больше пишу, тем больше ересь какая-то получается.
Числа отделяются друг от друга пробелом
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2014, 14:01     Перевод символьной строки в массив вещественных чисел
Посмотрите здесь:

C++ Задать массив вещественных чисел и вставить в исходный массив число
Перевод символьной строки в число функцией atoll C++
C++ Перевод строки CString в массив чисел
Из строки получить массив вещественных чисел C++
C++ Перевод вещественных из системы в систему, сравнение вещественных
Перевод вещественных чисел в двоичные C++
C++ Чтение вещественных чисел из строки
Переделать массив целых чисел на массив вещественных чисел C++
Перевод чисел из строки в массив чисел C++
C++ Динамический массив из вещественных чисел
Перевод вещественных чисел из двоичной системы счисления в десятичную C++
Файловые потоки, перевод строки чисел в массив C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4391 / 3234 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.01.2014, 14:24     Перевод символьной строки в массив вещественных чисел #2
Цитата Сообщение от Bright Color Посмотреть сообщение
не используя scanf.
используйте std::istream
Ev[G]eN
Эксперт С++
5096 / 1534 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
24.01.2014, 14:29     Перевод символьной строки в массив вещественных чисел #3
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 <sstream>
#include <string>
 
int main()
{
    std::string userString;
    std::cout << "Input the string: ";
    std::getline(std::cin, userString);
 
    std::string currentStringNumber;
    std::stringstream stream(userString);
 
    size_t arrayIndex = 0;
    double *array = new double [std::count(userString.begin(), userString.end(), ' ') + 1];
    std::cout << "Array: " << std::endl;
    while (stream >> currentStringNumber) {
        array[arrayIndex] = atof(currentStringNumber.c_str());
        std::cout << array[arrayIndex++] << ' ';
    }
    std::cout << std::endl;
    delete [] array;
    array = nullptr;
 
    std::system("pause");
    return 0;
}
Tulosba
:)
Эксперт С++
4391 / 3234 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.01.2014, 14:32     Перевод символьной строки в массив вещественных чисел #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
#include <iostream>
#include <vector>
 
int main() {
 
    std::vector<double> v;
 
    for(;;) // Ввод
    {
        double d = 0;
        std::cin >> d;
        if( !std::cin ) break;
        v.push_back(d);
    }
    
    // Вывод
    for( const auto& d : v )
    {
        std::cout << d << " ";
    }
    std::cout << '\n';
    
    return 0;
}
Bright Color
1 / 1 / 0
Регистрация: 24.01.2014
Сообщений: 7
24.01.2014, 15:58  [ТС]     Перевод символьной строки в массив вещественных чисел #5
Ev[G]eN, Спасибо. Не могли бы вы объяснить подробно вот этот момент
C++
1
2
3
while (stream >> currentStringNumber) {
        array[arrayIndex] = atof(currentStringNumber.c_str());
...}
?
Tulosba
:)
Эксперт С++
4391 / 3234 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
24.01.2014, 16:17     Перевод символьной строки в массив вещественных чисел #6
C++
1
2
3
while (stream >> currentStringNumber) { // Чтение из строкового потока в строку пока есть данные
array[arrayIndex] = atof(currentStringNumber.c_str()); // Перевод из Си-строки в число с плавающей точкой и сохранение в массиве
...}
P.S. По возможности, лучше не заморачиваться с сишными строками, а использовать std::string.
И stod для преобразования в частности
Yandex
Объявления
24.01.2014, 16:17     Перевод символьной строки в массив вещественных чисел
Ответ Создать тему
Опции темы

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