#include <stdio.h>
#include <conio.h>
void get_with_filter()
{
printf("Enter chars: ");
int nState = 0; // unknown state
for (;;)
{
int ch = getch();
if (ch == '\r')
break; // ENTER pressed; exit function
switch (nState)
{
case 0: // unknown state
if (isalpha(ch))
nState = 1; // state: letters
else if (isdigit(ch))
nState = 2; // state: digits
else
ch = '\a'; // can't determine the state; change to 'alarm'
break;
case 1: // state: letters
if (!isalpha(ch))
ch = '\a'; // not a letter; change to 'alarm'
break;
case 2: // state: digits
if (!isdigit(ch))
ch = '\a'; // not a digit; change to 'alarm'
}
putchar(ch);
}
}
Ввод по типу... на Си
Ф-ция: Ввод по типу поля, т.е. либо буквы, либо цифры. Определяется тип по первому введенному символу(цифра/буква).
Ф-ция: Очистка поля. На подобии clreol, только стирает всю строку с начала строки, а не от позиции курсора.
Цитата:
Originally posted by Fima
Народ, помогите написать две ф-ции на Си.
Ф-ция: Ввод по типу поля, т.е. либо буквы, либо цифры. Определяется тип по первому введенному символу(цифра/буква).
Народ, помогите написать две ф-ции на Си.
Ф-ция: Ввод по типу поля, т.е. либо буквы, либо цифры. Определяется тип по первому введенному символу(цифра/буква).
Замучаетесь такую функцию писать. Например, ответьте, пожалуйста, на вопрос: а какой будет тип её возвращаемого значения? Только COleVariant на ум приходит...
Цитата:
Originally posted by Fima
Ф-ция: Очистка поля. На подобии clreol, только стирает всю строку с начала строки, а не от позиции курсора.
Ф-ция: Очистка поля. На подобии clreol, только стирает всю строку с начала строки, а не от позиции курсора.
Установите курсор в начало строки, потом вызовите вашу clreol. [COLOR=silver]Только вот MSDN ничего про clreol не знает. Я её только в Borland Pascal v7 встречал...[/COLOR]
Цитата:
Originally posted by sq_deep
Замучаетесь такую функцию писать. Например, ответьте, пожалуйста, на вопрос: а какой будет тип её возвращаемого значения? Только COleVariant на ум приходит...
[/COLOR]
Замучаетесь такую функцию писать. Например, ответьте, пожалуйста, на вопрос: а какой будет тип её возвращаемого значения? Только COleVariant на ум приходит...
[/COLOR]
Мне эта ф-ция нужна под ДОС! => я думаю, что ф-ция будет типа void. Есть предложения?
Цитата:
Originally posted by Fima
Мне эта ф-ция нужна под ДОС! => я думаю, что ф-ция будет типа void. Есть предложения?
Мне эта ф-ция нужна под ДОС! => я думаю, что ф-ция будет типа void. Есть предложения?
Fima, функция типа void Вам ничего не сможет вернуть. Даже под ДОС.
Почитайте внимательно про void и объясните, какая функция Вам конкретно нужна. По Вашему описанию никто ничего умного Вам посоветовать не сможет. Искренне сожалею.
Да, не совсем правильно выразился.
Ф-ция считывает символ с клавы и если это цифра, то дальше можно вводить только цифры; если это буква - буквы.
Вот, теперь я думаю ясно. Да?