little_greg Опубликовано 27 апреля, 2009 Жалоба Поделиться Опубликовано 27 апреля, 2009 Возникает проблема: как только заполню первую строку, компилятор отображает следующие строки программы и просит нажать любую кнопку для завершения!!! #include <cstdlib> #include <iostream> using namespace std; struct CD { char name[20]; char description[40]; char category[12]; float cost; int number; } disk[10]; int main(int argc, char *argv[]) { int index, repeat; char flag; flag='Y'; index=0; do { printf("Vvedite svedenia o diske #%d\n", index); printf("Vvedite nazvanie: "); scanf("%s", disk[index].name); printf("Vvedite opisanie: "); scanf("%s", disk[index].description); printf("Vvedite kategoriyu: "); scanf("%s", disk[index].category); printf("Vvedite cenu: "); scanf("%f", &disk[index].cost); printf("Vvedite nomer yacheiki: "); scanf("%d", &disk[index].number); index++; if (index<10) { printf("Zhelaete \ vvesti informaciyu o sleduyushchem diske? Da - Y, Net - N\n"); scanf("%c", &flag); } } while (index<10 && (flag=='Y' || flag=='y')); puts("Name Cell number"); for (repeat=0; repeat<index; repeat++) printf("%s %d\n", disk[repeat].name, disk[repeat].number); system("PAUSE"); return EXIT_SUCCESS; } Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 апреля, 2009 Жалоба Поделиться Опубликовано 27 апреля, 2009 little_greg: Символьный ввод у тебя читает символ завершения предыдущего ввода. Вставь, например, перед строкой index++; строку getchar(); Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 27 апреля, 2009 Автор Жалоба Поделиться Опубликовано 27 апреля, 2009 little_greg: Символьный ввод у тебя читает символ завершения предыдущего ввода. Вставь, например, перед строкой index++; строку getchar(); Я так уже пробовал. Если, например, я в названии пишу строку, в которой присутствует пробел, то тогда возникает косяк, а если нет пробела то все работает нормально. Ты не знаешь как исправить эту проблему? Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 апреля, 2009 Жалоба Поделиться Опубликовано 27 апреля, 2009 little_greg: Это другое. Хотя в определенном смысле то же самое - ты не знаешь, как работает функция scanf. Используй для чтения строки функцию gets. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 27 апреля, 2009 Автор Жалоба Поделиться Опубликовано 27 апреля, 2009 little_greg: Это другое. Хотя в определенном смысле то же самое - ты не знаешь, как работает функция scanf. Используй для чтения строки функцию gets. блин, запарился с этим scanf, спасибо! Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 апреля, 2009 Жалоба Поделиться Опубликовано 27 апреля, 2009 Можно и scanf использовать, но тогда надо применять ввод по образцу... Проще делать проще :). Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.