ВУЗ:
Составители:
Рубрика:
8
Смешанный ввод строк и чисел
Рассмотрим фрагмент программы
int n;
char s[30];
cin>>n;
cin.getline(s,30); // или gets(s);
или такой:
char c;
char s[30];
cin>>c;
cin.getline(s,30); // или gets(s)
Пользователь никогда не получит возможности ввести строку s. Объект cin,
cчитав n (во втором случае считывается с), оставляет символ новой строки,
сгенерированный с помощью клавиши ENTER, во входной очереди. Затем
функция cin.getline() воспринимает символ
новой строки так, как будто это
пустая строка, и присваивает нулевую строку элементу массива s. Чтобы
исправить ошибку, следует считать и отбросить символ новой строки перед
чтением строки. Это можно сделать несколькими способами. Один из способов -
использовать функции cin.get() без параметров.
cin>>n; // ввод числа или символа
cin.get(); // считать и отбросить символ
новой строки
cin.getline(s,30); // считать строку функцией cin.getline(s,30) или gets(s)
Упражнение 3. Выполните смешанный ввод строк и чисел (строк и символов).
Упражнение 4. Протестируйте две функции создания копии строки. Объясните
отличия в тексте.
void copy1(char *s1, char *s2)
{int i;
for((i=0; s1[i]!=’\0’; i++)
Страницы
- « первая
- ‹ предыдущая
- …
- 6
- 7
- 8
- 9
- 10
- …
- следующая ›
- последняя »