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

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

Войти
Регистрация
Восстановить пароль
 
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
#1

считать строку чисел в массив - C++

30.03.2013, 15:16. Просмотров 549. Ответов 2
Метки нет (Все метки)

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <sstream>
#include <string>
#include <iostream>
using std::cout;
using std::string;
using std::istringstream;
using std::endl;
#define TICK 12
#define RATE 7
#define iRATE int i=0; i<RATE; i++
#define jTICK int j=0; j<TICK; j++
class Table
{
public:
    int table[RATE][TICK];
    string temp_val;
    Table();
    Table(const char* str);
    void output();
};
Table::Table()
{
    for(iRATE)
    {
        for(jTICK)
        table[i][j]=0;
    }
}
Table::Table(const char *str)
{
    int i=0, j=0;
    istringstream iss(str);
    while(iss)
    {
        do
        {
            int temp;
            iss >> temp;
            table[i++][j++]=temp;
        }
        while(i<RATE && j<TICK);
        i=0;
        j=0;
    }
}
void Table::output()
{
    for(iRATE)
    {
        for(jTICK)
        {
            cout<<table[i][j]<<"  ";
        }
        cout<<endl;
    }
}
int main(void)
{
string strAffliction="1783 5320 8845 12392 15940 19476 23011 26578 30119 33631 37200 40711 493 3928 7349 10794 14238 17671 21103 24566 28004 31414 34879 38288 0 3043 6400 9778 13157 16525 19892 23289 26661 30006 33405 36749 0 1717 4975 8256 11536 14806 18074 21373 24647 27894 31194 34441 0 0 0 0 1145 3786 6426 9089 11734 14357 17023 19645 0 0 0 0 313 2904 5494 8107 10701 13274 15889 18461 0 0 0 0 0 1582 4096 6633 9151 11649 14188 16685";
Table Warlock_Affliction(strAffliction.c_str());
Warlock_Affliction.output();
 
}
почему не заполняет массив из строки?
массив 12 на 7 (12 столбцов 7 строк)
выводит вот что
Код
1908587216  0  0  0  0  0  0  0  0  0  0  0
0  1908587216  0  0  0  0  0  0  0  0  0  0
0  0  1908587216  0  0  0  0  0  0  0  0  0
0  0  0  1908587216  0  0  0  0  0  0  0  0
0  0  0  0  1908587216  0  0  0  0  0  0  0
0  0  0  0  0  1908587216  0  0  0  0  0  0
0  0  0  0  0  0  1908587216  0  0  0  0  0

Для продолжения нажмите любую клавишу . . .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 15:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос считать строку чисел в массив (C++):

Считать строку чисел в массив int - C++
Доброго времени суток! Подскажите, как можно считать из консоли строку чисел в массив int. А то туплю чет((

Считать строку в динамический массив - C++
помогите считать строку цифр неизвестной длины и перевести в массив целых чисел , код на си обычном

Можно ли в массив чаров считать строку полностью? - C++
У меня получается считать только первое слово, понимаю что есть функция getline() и еще я какую-то похожую видел, но желательно без этих...

Считать строку в массив символов, который является членом класса - C++
гетлайны, гетси, манипуляторы ws не работают (не могу заставить) #include &lt;iostream&gt; using namespace std; class employee { ...

Из текстового файла считать массив целых чисел - C++
Из текстового файла input.txt считать массив целых чисел. Предполагается, что количество чисел в массиве не превышает 10. Дописать в...

Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а - C++
Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а, необходимо для интерактивного ввода в...

2
iifat
2285 / 1440 / 116
Регистрация: 05.06.2011
Сообщений: 3,996
30.03.2013, 15:50 #2
Цитата Сообщение от Tiva Посмотреть сообщение
C++
35
36
37
38
39
40
41
42
43
        do
        {
            int temp;
            iss >> temp;
            table[i++][j++]=temp;
        }
        while(i<RATE && j<TICK);
        i=0;
        j=0;
Прочие не заполняются, потому что вот этот цикл заполняет только главную диагональ.
Вот откуда берётся число, которое там сидит, -- не понял.
0
anmartex
...
1708 / 1201 / 496
Регистрация: 12.02.2013
Сообщений: 1,978
30.03.2013, 16:16 #3
Да, в конструкторе явно перемудрили. А не проще?:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Table::Table(const char* str)
{
   istringstream iss(str);
 
   for (int i = 0; i < RATE; ++i)
   {
      for (int j = 0; j < TICK; ++j)
      {
         int temp = 0;
         iss >> temp;
         table[i][j] = temp;
      }
   }
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 16:16
Привет! Вот еще темы с ответами:

Массив чисел в строку - C++
Доброго времени суток. Помогите пожалуйста преобразовать массив чисел в строку. Может уже кто-то подобное делал, или есть какие-то мысли....

Ввести в программу строку (числа, латиница), считать только числа, записать числа в массив - C++
Нужна помощь! Срочно! Нужно ввести в программу строку (числа, латиница), считать только числа, записать числа в массив. Помогите,...

Строку чисел в массив integer - C++
Подскажите, пожалуйста, срочно нужно, у меня есть строка, которая состоит из цифр. Как по цифрам перевести её в массив целых чисел? ...

Как преобразовать строку в массив чисел? - C++
символы вводятся через пробел. Программа сканирует только до пробела и делит цифру на числа. Как сделать чтобы оно сканировало цифры...


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

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

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