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

getline не читает дальше пробела - C++

Восстановить пароль Регистрация
 
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
28.10.2012, 20:56     getline не читает дальше пробела #1
И снова глупый вопрос:
C++
1
2
3
4
5
6
7
8
       char **ostchar = new char;
        *ostchar = new char
    for(sch = 0; sch < n; sch++){
        cin.getline(ostchar[sch], n*2-1);
        for(int sch2 = 0; sch2 < n; sch2++){
            kvadrat[sch][sch2] = atoi(&ostchar[sch][sch2*2]);
        }
    }
выдает ошибку доступа, а при дебаге говорит, что прочитал только один символ. Почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.10.2012, 21:39     getline не читает дальше пробела #2
Цитата Сообщение от ikmik Посмотреть сообщение
char **ostchar = new char;
Здесь как минимум нужно
C++
1
char **ostchar = new char*;
При этом выделяется память под один указатель на чар
Цитата Сообщение от ikmik Посмотреть сообщение
*ostchar = new char
Выделяется память под один чар
Если подстраивать под строки
Цитата Сообщение от ikmik Посмотреть сообщение
for(sch = 0; sch < n; sch++){
cin.getline(ostchar[sch], n*2-1);
получится
C++
1
2
3
char **ostchar = new char*[n];
for (int i = 0; i < n; i++)
   ostchar[i] = new char [2*n];
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
28.10.2012, 21:48  [ТС]     getline не читает дальше пробела #3
Помогло, но не совсем: теперь он не выбрасывает из программы, но вторую строку все равно не дает ввести, а при попытке вывода пишет, что в невведеной строке "0 0"
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.10.2012, 21:51     getline не читает дальше пробела #4
Попробуйте после ввода поставить cin.sync();
Textures
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 13
28.10.2012, 21:59     getline не читает дальше пробела #5
&ostchar
Я в ссылках и указателях не разбираюсь, но разве после того как объявил указатель можно с ним так работать?
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
28.10.2012, 22:01  [ТС]     getline не читает дальше пробела #6
kazak, Прости, не помогло

Textures, конечно можно
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.10.2012, 22:10     getline не читает дальше пробела #7
Цитата Сообщение от Textures Посмотреть сообщение
Я в ссылках и указателях не разбираюсь, но разве после того как объявил указатель можно с ним так работать?
В данном контексте & - означает операцию взятия адреса.

Добавлено через 9 минут
Кстати об адресе

Цитата Сообщение от ikmik Посмотреть сообщение
atoi(&ostchar[sch][sch2*2]);
Так нельзя, atoi ждет нуль-терминированную строку в виде указателя на ее начало, а получает адрес отдельного чара.
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
28.10.2012, 22:15  [ТС]     getline не читает дальше пробела #8
kazak, так мне нужен отдельный чар

теперь о продвижениях:
я заменил getline на read, теперь дает ввести вторую строку, но выводит все тоже самое
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
28.10.2012, 22:18     getline не читает дальше пробела #9
Суть программы какова?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 22:19     getline не читает дальше пробела
Еще ссылки по теме:

Getline C++
При использовании getline ввод при Enter заканчивается только после пробела C++
Отличие getline() от cin.getline() C++

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

Или воспользуйтесь поиском по форуму:
ikmik
6 / 6 / 0
Регистрация: 07.07.2011
Сообщений: 117
28.10.2012, 22:19  [ТС]     getline не читает дальше пробела #10
Все, спасибо всем, справился. заменил в цикле иниализации < на <=
Yandex
Объявления
28.10.2012, 22:19     getline не читает дальше пробела
Ответ Создать тему
Опции темы

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