Newsgroup: it.comp.lang.c
Titolo: input da tastiera

Ciao a tutti,
ho i seguenti problemi in Borland Turbo C 1.0 per DOS:
1) non viene compilato un semplice programma che fa uso dell'header
"time.h". Vengono segnalati degli errori. Poichè mi serviva solo la funzione
"clock()" ho eliminato alcune parti e sto andando avanti così. Però mi
piacerebbe sapere se si trova una "time.h" funzionante.
2) in un ciclo while basato sulla misurazione del tempo (con clock(),
appunto) vorrei che, nel caso fosse premuto un dato tasto, si potesse
compiere determinate azioni. Non trovo però l'istruzione giusta, in quanto
getch() ferma il ciclo in attesa che l'utente prema un tasto, invece io
vorrei una funzione che interrogasse il buffer di tastiera senza attendere
la pressione. La bioskey() non ha funzionato perchè o si comporta come
getch() oppure - non svuotando il buffer - restituisce sempre lo stesso
codice!
Grazie mille a chi mi darà aiuto
Paolo

 ho i seguenti problemi in Borland Turbo C 1.0 per DOS:
_Turbo C_ _1.0_ per _DOS_? 8-/
Onestamente non saprei risponderti, dato l'ambiente di lavoro veramente 
obsoleto... non puoi aggiornare un po' il compilatore? :P
-- 
/**
  * Mattia Belletti - Undergraduate student @ 
cs.unibo.it
  * ICQ: 33292311   - email: 
mbel...@cs.unibo.it
  * IRC: BluShine   - site(s): 
http://cs.unibo.it/~mbellett
  * Linux registered user 299762 @ Linux registered machine 213003
  */

appunto) vorrei che, nel caso fosse premuto un dato tasto, si potesse
[zap]
Guarda kbhit() o qualche cosa del genere...
ciao
Andrea
----
http://space.tin.it/io/andrea.fa

> Onestamente non saprei risponderti, dato l'ambiente di lavoro veramente
obsoleto... non puoi aggiornare un po' il compilatore? :P
Probabilmente hai ragione. Però lo trovo comodo: è piccolo, veloce a
compilare (su un PC lento, dove lo sto adoperando, questa qualità non guasta
davvero!), e poi è quello su cui ho mosso i primi passi di programmazione.
Recentemente ho provato (su una macchina più veloce) ad usare "LCC win 32",
per provare il brivido della programmazione sotto windows: purtroppo non ho
fatto grandi progressi. Tanto per incominciare la superiore classe
dell'ambiente Borland si fa sentire...
Vabbè... comunque... ci riproverò
Grazie lo stesso
Ciao

 Andrea
Al momento non sto scrivendo dal PC dove mi serve l'informazione, ma la
posterò al più presto.
Grazie, comunque
Ciao
Paolo

 
http://space.tin.it/io/andrea.fa
Ciao Andrea,
kbhit() (in conio.h), usata insieme a getch(), è la soluzione al
problema.... :-)
Ti ringrazio molto.
Conto di "postare" entro breve il problema riscontrato sulla time.h.
Paolo

Come ripromessomi, riporto la "time.h" che non mandava a buon fine la
compilazione, ma con alcune istruzioni "commentate": in questa maniera, e
solo al fine di usare la "clock()", il tutto ha funzionato.
A me sembra che tutto derivi dal fatto che non viene trovata la "_defs.h":
può essere? E dove dovrebbe stare?
Grazie a chi leggerà.
Paolo
----------------------------------------------------------------------------
-------------
/* time.h
   Struct and function declarations for dealing with time.
   Copyright (c) 1987, 1992 by Borland International. All Rights Reserved.
*/
#ifndef __TIME_H
#define __TIME_H
/* #if !defined(___DEFS_H)
#include <_defs.h>
#endif  */
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#ifndef  _TIME_T
#define  _TIME_T
typedef long time_t;
#endif
#ifndef  _CLOCK_T
#define  _CLOCK_T
typedef long clock_t;
#define CLOCKS_PER_SEC 18.2
#define CLK_TCK        18.2
#endif  /* _TIME_T */
struct tm
{
int   tm_sec;
int   tm_min;
int   tm_hour;
int   tm_mday;
int   tm_mon;
int   tm_year;
int   tm_wday;
int   tm_yday;
int   tm_isdst;
};
#ifdef __cplusplus
extern "C" {
#endif
/* char _FAR *     _Cdecl _FARFUNC asctime(const struct tm _FAR *__tblock);
char _FAR *     _Cdecl _FARFUNC ctime(const time_t _FAR *__time); */
double      _Cdecl difftime(time_t __time2, time_t __time1);
/* struct tm _FAR * _Cdecl _FARFUNC gmtime(const time_t _FAR *__timer);
struct tm _FAR * _Cdecl _FARFUNC localtime(const time_t _FAR *__timer);
time_t      _Cdecl time(time_t _FAR *__timer);
time_t      _Cdecl _FARFUNC mktime(struct tm _FAR *__timeptr); */
clock_t     _Cdecl clock(void);
/* size_t      _Cdecl _FARFUNC strftime(char _FAR *__s, size_t __maxsize,
const char _FAR *__fmt, const struct tm _FAR *__t); */
#if !__STDC__
#if !defined(_RTLDLL)
extern int  _Cdecl  daylight;
extern long _Cdecl  timezone;
/* extern char _FAR * const _Cdecl tzname[2]; */
#else
int  far * far _Cdecl       __getDaylight(void);
long far * far _Cdecl       __getTimezone(void);
char far * far * far _Cdecl __getTzname(void);
#define daylight (*__getDaylight())
#define timezone (*__getTimezone())
#define tzname   (__getTzname())
#endif  /* _RTLDLL */
/* int         _Cdecl  stime(time_t _FAR *__tp);
 void        _Cdecl  _FARFUNC tzset(void);
 char _FAR * _Cdecl  _FARFUNC _strdate(char _FAR *datestr);
 char _FAR * _Cdecl  _FARFUNC _strtime(char _FAR *timestr); */
#endif
#ifdef __cplusplus
}
#endif
#endif