Merhabalar, c de integer olarak tanıttığım bi sayıya scanf le değer atıyorum her scanf ten sonra enter a basmak zorunda kalıyorum bunu bi döngü içerisinde her seferinde farklı değerler atadığım için de vakit kaybı oluyor.scanf te sadece rakama basıp enter a basmadan input değeri almanın bi yolu var mı acaba.vericeğim değerler 0-9 arasında olacak.
Girdiğiniz değerleri , / - veya kendi belirlediğiniz bir karakterle ayırabilirsiniz fakat ayraç olarak girdiğiniz karakteri anlayıp değerleri ayıracak kodu yazmanız lazım.
/* Make terminal read 1 char at a time */ tcgetattr(0, &oldt); /* Save terminal settings */ newt = oldt; /* Init new settings */ newt.c_lflag &= ~(ICANON | ECHO); /* Change settings */ tcsetattr(0, TCSANOW, &newt); /* Apply settings */ atexit(restore_terminal_settings); /* Make sure settings will be restored when program ends */ }
int main() { int ch;
disable_waiting_for_enter();
/* Key reading loop */ while (1) { ch = getchar(); if (ch == 'Q') return 0; /* Press 'Q' to quit program */ printf("You pressed %c\n", ch); }
girdiden sonra enter gerektirmeyen char okuyan bir fonksiyon bulman lazim. windowsta conio.h dahilinde getch() fonksiyonu var. linux icin arastirmadim ama vardir mutlaka. sonra okudugun karakterden rakami cekersin.
c de integer olarak tanıttığım bi sayıya scanf le değer atıyorum her scanf ten sonra enter a basmak zorunda kalıyorum bunu bi döngü içerisinde her seferinde farklı değerler atadığım için de vakit kaybı oluyor.scanf te sadece rakama basıp enter a basmadan input değeri almanın bi yolu var mı acaba.vericeğim değerler 0-9 arasında olacak.