![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
request |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.12.2009 Репутация: нет Всего: нет |
Функция для заполнения массива структур. Первый элемент структуры array[i].name при i=1 заполняется (посредством функции entcontrol2) корректно, а при последующих повторах не заполняется вообще. При этом все остальное заполняется нормально.
|
|||
|
||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
1. Замените: strcpy(array[i].name,temp); на strcpy(array[i].name, "xui"); отпишитесь. Так будет яснее, в чем проблема.
2. код инициализации array[i].name покажите |
|||
|
||||
request |
|
||||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.12.2009 Репутация: нет Всего: нет |
При первом срабатывании все работает, в том числе в других программах, а в цикле больше одного раза не хочет. Строка strcpy(array[i].name,temp); сама по себе работает вполне успешно. |
||||
|
|||||
comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
возможно, тут присутствует шаманизм с нулевым символом. Ничего другого в голову не приходит. Вообще strcpy - это для работы с нуль-терминированными строками. Для работы с массивом символов попробуй memcpy. Вот прямо сейчас замени и попробуй.
|
|||
|
||||
azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 52 Всего: 211 |
request
Ничего не понял. Что за функция entcontrol? Короче покажи весь код и расскажи что именно не работает. |
|||
|
||||
request |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.12.2009 Репутация: нет Всего: нет |
с memcpy так же точно получается
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Предположение - entcontrol оставляет '\n' в stdin
|
|||
|
||||
request |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.12.2009 Репутация: нет Всего: нет |
тогда бы потом сама entcontrol бы тоже не работала, а она нормально работает до конца цикла. или я чего-то не понимаю. выглядит она так:
|
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
|
|||
|
||||
request |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 16.12.2009 Репутация: нет Всего: нет |
спасибо, fflush(stdin) после scanf решило проблему. только вопрос, надо ли это делать после fgets? может ли она оставлять чтото в stdin?
|
|||
|
||||
xvr |
|
||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 35 Всего: 223 |
Нет
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "C/C++: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |