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

Двумерный массив символов - C++

Восстановить пароль Регистрация
 
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
04.02.2014, 18:29     Двумерный массив символов #1
привожу кусок кода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int N(0);
    int M(0);
    cout << "Введите кол-во строк, в которых мы будем искать первую строку" << endl;
    cin >> N;
    
    cout << "Введите кол-во символов в строке" << endl;
    cin >> M;
 
    char **str2 = new char*[N];
    for (int k = 0; k < N; k++)
  str2[k] = new char[M];
 
     cout << "А теперь введите сами эти строки" << endl;
    for (i = 0; i < N; ++i)
        for (j = 0; j < M; ++j)
            cin >> str2[i][j];
 
    cout << "DONE!";
 
    //Удаляем массив
    for(int k = 0; k < N; k++)
        delete[] str2[k];
    delete [] str2;
может проблема в строке cin >> str2[i][j]; Почему то не останавливается, если я ввожу N=4, готов вводить до 12-15 строк, а потом только выводит DONE. В чем, может быть проблема?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
04.02.2014, 18:35     Двумерный массив символов #2
Потому что нужно вводить строку целиком, а не посимвольно, т.е. :

C++
1
2
for (i = 0; i < N; ++i)
        cin >> str2[i];
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
04.02.2014, 18:36     Двумерный массив символов #3
RayPas,

Задание скиньте. А то из ваших объясниний ничего непонятно =/

C++
1
2
3
    for (i = 0; i < N; ++i)
        for (j = 0; j < M; ++j)
            cin >> str2[i][j];
Вы вводите элементы массива в этими циклами. Что у вас должно остановиться?)

Добавлено через 55 секунд
vovacreme,

Тогда уже:
C++
1
2
for (i = 0; i < N; ++i)
        cin >> str2[i];
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
04.02.2014, 18:38     Двумерный массив символов #4
kventin_zhuk, это очепятка была
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
04.02.2014, 18:47  [ТС]     Двумерный массив символов #5
ааааа! т.е., ребят, сколько символов будет в строке ему достаточно узнать при объявлении(создании) массива?
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
04.02.2014, 18:53     Двумерный массив символов #6
RayPas, выделяя память под массив символов вы указываете максимально возможное количество символов в строке. Но понятно, что строки все будут разного размера. Фактическое количество символов в строке можно узтать функцией strlen().

Оно?

Яснее формулируйте вопрос - а то не понятно ничего
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
04.02.2014, 18:58  [ТС]     Двумерный массив символов #7
kventin_zhuk, почти) Первая часть - оно) Просто вот, смотрите, получается создали массив, но и сразу сказали, что и кол-во строк и кол-во столбцов(т.е. символов в строке) будет разное кол-во. НО! когда вводим непосредственно через поток cin строку, то в цикле, что вы мне исправили - проходим только по строкам - вот это не совсем пойму, почему только цикл для строк...
извиняюсь, если не совсем доходчиво...
kventin_zhuk
БНТУ ФИТР
 Аватар для kventin_zhuk
214 / 154 / 15
Регистрация: 26.12.2012
Сообщений: 382
04.02.2014, 19:05     Двумерный массив символов #8
RayPas, Потому что мы вводим строку целиком, а не посимвольно. Поэтому и проходим только по строкам, а не по их символам.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.02.2014, 19:20     Двумерный массив символов
Еще ссылки по теме:

Двумерный массив символов C++
Двумерный массив символов C++
C++ Двумерный динамический массив символов

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

Или воспользуйтесь поиском по форуму:
RayPas
 Аватар для RayPas
2 / 0 / 0
Регистрация: 18.01.2013
Сообщений: 367
04.02.2014, 19:20  [ТС]     Двумерный массив символов #9
кстати, знаете, возможно не ступил бы так, если б на всех форумах, что искал этот вопрос - не находил бы такой способ ввода, как изначально написал...
Yandex
Объявления
04.02.2014, 19:20     Двумерный массив символов
Ответ Создать тему
Опции темы

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