| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Ввод переменной |
| Автор: InfMag 28.2.2005, 19:21 |
| Как мне ввести переменную? То-бишь как в паскале: read(i);? |
| Автор: chipset 28.2.2005, 19:32 | ||
Это есть в любой книжке по Си.
|
| Автор: InfMag 28.2.2005, 19:37 | ||
| А зачем перед i там стоит &? Добавлено @ 19:38 А еще вопрос: Если я ввести две переменные и сложить их? Потом соответственно вывести результат... Добавлено @ 19:40 И еще в делфи есть прикол, типа ввод или вывод с новой строки. Мол префикс ln или как там его называют. Как мне писать в BC? Добавлено @ 19:43 И вот кстати у меня код:
|
| Автор: chipset 28.2.2005, 19:46 | ||||||||||
Это оператор взятия указателя.
Кто тебе мешает?
'\n' К примеру: printf("Hello world!\n Second line \n Third line); |
| Автор: InfMag 28.2.2005, 19:49 | ||
| chipset Спасиб.
Я не об этом. Если мне нужно запретить вводить числа в одну строку, а разрешить через Enter. Добавлено @ 19:56 Люди, а как мне проверить является ли переменная числовой. И как проверить является ли она текстовой? |
| Автор: _hunter 28.2.2005, 20:15 |
| получай массив символов и смотри есть в нем что-то кроме цифр или нету |
| Автор: InfMag 28.2.2005, 20:31 |
| _hunter Ну а смотреть-то как? |
| Автор: _hunter 28.2.2005, 20:34 |
| пробегаеш по всему массиву и смотриш чтобы символ был >= '0' и '9' <= |
| Автор: InfMag 28.2.2005, 20:54 |
| _hunter Можно пример кода? Че-то я не вьехал. Мне это циклом что-ль делать нада? |
| Автор: _hunter 28.2.2005, 20:58 | ||
| в цикле. примерно так:
|
| Автор: InfMag 28.2.2005, 20:58 |
| Мдя уж, я уже попробовал так if (a>=0 && b>=0) { bla bla bla } else { bla bla bla } Здесь что-то неправильно? Добавлено @ 21:03 Я уже нашел недостаток! Если я ввожу через Enter, а не через одну строку и если первая переменная - число, а вторая все, что угодно, кроме числа, то не реагирует и пытается сложить... |
| Автор: _hunter 28.2.2005, 21:13 | ||
а что должно получится? ;) + что такое а и б |
| Автор: InfMag 28.2.2005, 22:15 | ||
| _hunter Всмысле? Я не понял... Яж написал:
|
| Автор: Goryachev 28.2.2005, 22:48 | ||||||||
| InfMag Короче так. Функция scanf возвращает число правильных прочитанных данных. Если к примеру такой код:
Примечания: <enter> - это кнопка "ENTER" <space> - это кнопка пробел Если ввод будет например: 10<enter> то res=1, потому, что 10 это легальный ввод для целого числа. (Мы пытались прочесть integer - "%d") Если ввод будет например: 10h<enter> то res=0, потому, что 10h это не целое число. И еще советую перед каждым вызовом scanf написать следующее:
Это чистит буфер клавы. Для чего это нужно? А вот для этого. К примеру есть такой код:
Если ввод к примеру такой: 10<space>h<enter> То num1=10, res1=1, второй scanf не будет ждать ввода, а возьмет 'h' из буфера клавиатуры (для scanf пробел считается как enter) и поэтому res2=0, num2=неизвестно. Поэтому, правильнее будет написать так, и проверять res на правильность ввода.
|
| Автор: _hunter 28.2.2005, 23:17 |
| InfMag, то, что ты писал я читал, но приведенный код абсолютно не соответствует описанной задаче, потому я и переспросил |