getint: int n, v, array[size];
for (n = 0; n < size && getint(&v) != EOF; n++) array[n] = v;
В результате каждого обращения v становится равным следующему целому значению, найденному во входных данных. Обратите внимание, что в качестве аргумента getint необходимо указать &v а не v. Использование просто v скорее всего приведет к ошибке адресации, поскольку getint полагает, что она работает именно с указателем.
Сама getint является очевидной модификацией написанной нами ранее функции atoi:
getint(pn) /* get next integer from input */ int *pn; { int c,sign;
while ((c = getch()) == ' ' || c == '\n' || c == '\t'); /* skip white space */ sign = 1; if (c == '+' || c == '-') { /* record sign */ sign = (c == '+') ? 1 : -1; c = getch(); } for (*pn = 0; c >= '0' && c <= '9'; c = getch()) *pn = 10 * *pn + c - '0'; *pn *= sign; if (c != EOF) ungetch(c); return(c); }
Выражение *pn используется всюду в getint как обычная переменная типа int. Мы также использовали функции getch и ungetch (описанные в лекции №4) , так что один лишний символ, который приходится считывать, может быть помещен обратно во ввод.
Упражнение 5-1
Напишите функцию getfloat, аналог getint для чисел с плавающей точкой. Какой тип должна возвращать getfloat в качестве значения функции?
on_load_lecture()
Дальше »
Если Вы заметили ошибку - сообщите нам.
« |
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
10
|
вопросы | »
|
для печати и PDA
Курсы | Учебные программы | Учебники | Новости | Форум | Помощь Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru © 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование |