0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 4
|
||||||
1 | ||||||
Имя структуры24.12.2008, 01:19. Показов 1575. Ответов 11
Метки нет (Все метки)
Здравствуйте. Надо ввести имя структуры, чтобы в ней присутствовали пробелы.
Был бы очень признателен.
0
|
24.12.2008, 01:19 | |
Ответы с готовыми решениями:
11
Структуры. Случайное имя и добавить нового студента Структуры (вычислить самое распространенное женское имя) Структуры. Определить имя самой высокой девочки в группе Что означает имя переменной в конце объявления структуры? |
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 4
|
||||||
24.12.2008, 03:11 [ТС] | 3 | |||||
Я не силен в программировании
Ну и работает также неправильно, если вводить имена студентов с пробелом. Это был изначальный вопрос. Если кто-нибудь поможет буду благодарен.
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
24.12.2008, 04:36 | 4 |
Код
gets(aStudent[i].sName);
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 4
|
|
24.12.2008, 04:44 [ТС] | 5 |
Спасибо. Problem seems solved.
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
24.12.2008, 05:15 | 6 |
gets нельзя юзать (эту функцию отрицают её авторы)
scanf("\t%[^\n]", aStudent[i].sName); пользователь может ввести очень длинную строку, чтобы сломать программу, поэтому необходимо встраивать ограничитель на максимально допустимое число символов, которое пользователь может ввести fgets имеет такой ограничитель, но на её основе можно написать более простую версию getline, которая принимает строку и ограничитель (получится типа gets'а) в C++ вроде уже есть такая в виде метода для потока ввода
0
|
2255 / 770 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
|
|
24.12.2008, 05:42 | 7 |
accept, человеку,который "не силен в программировании " - можно. Сдаст зачеты в инсте и забудет про все это.
Тем,кто разбирается итак понятно, что и почему нельзя юзать. Кстати, уже не в первый раз замечаю,что высказывание типа "Линус Торвальдс сказал так не делать", "Бьерн Страуструп пишет,что это плохой стиль" и т д, бесполезны. Приводите аргументацию,а не ссылки на авторитетов. Готов поспорить, я могу найти противоречивые слова одного и того же человека, даже если он и программист мирового уровня. Это в природе людей. Раз уж завели эту тему,объясню новичкам, что количество символов, которые будут записаны в буффер после вызова этой ф-ии, теоретически не ограничено(практически это значит,что для любого размера буффера,выделенного под ввод, можно ввести более длинную строку). Это создает идеальную почву для атак на переполнение буффера. Извини,accept,когда отвечал не заметил правку.
0
|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
25.12.2008, 01:11 | 9 |
Очень интересный и нужный вопрос!
Так как же всё-таки поставить ограничение? Если попробовать Код
scanf("\t%[^\n]", str);
0
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
25.12.2008, 01:32 | 10 | |||||
так они обе такие, просто у него там scanf везде
для ограничения fgets вот getline от авторов, я не знаю от двух или на этот раз уже от одного
0
|
146 / 146 / 32
Регистрация: 26.10.2008
Сообщений: 782
|
|
25.12.2008, 01:42 | 11 |
Спасибо!
Вспомнил про функцию cin.getline - у нею ствится ограничение для ввода.
0
|
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 4
|
|
25.12.2008, 11:30 [ТС] | 12 |
Код
printf("\n%d. Student:\n", i+1); printf("Name: "); if(i > 0){ char govno[10]; gets(govno); } gets(aStudent[i].sName);
0
|
25.12.2008, 11:30 | |
25.12.2008, 11:30 | |
Помогаю со студенческими работами здесь
12
С помощью структуры определить группу из 7 человек, имя, пол и рост Структуры.Фамилия, Имя, Отчество Группа Домашний адрес, Телефон Электронная пошта Структуры. Записать отдельно имя и фамилию и отдельно числа Помещение структуры в вектор, удаление структуры, изменение элементов структуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |