Newsgroup: it.comp.lang.c++
Titolo: Repeat until keypressed;

Come si fa la stessa cosa in C e in C++
Spero che sia uguale per entrambi i linguaggi, ma soprattutto spero che sia
facile come con il pascal.
(per chi non conosce il pascal, l'istruzione attende la pressione di un
qualsiasi tasto dopodichè fa continuare l'esecuzione del programma, da
mettere prima della fine del programma per avere tempo di leggere i
risultati in output)
Per la cronaca uso il djgpp+rhide per un progetto C che chiamo CPT (lettore
di mp3, con tanto di allegro e libamp per chi sapesse cosa sono, CPT sta per
"come perdere tempo") e il borland 5.0 per il c++ (università).
Sarò io che sono babbo (indubbiamente), ma il borland C++ non permette di
aprire la user screen con i risultati una volta che si è terminata
l'esecuzione?
Lo permette il Rhide, lo permette il TP7.0 (e sono gratuiti) e non lo
permette il Borland 5.0.... vabbhè che non l'ho pagato però da mamma Borland
non me l'aspettavo.
In alternativa usiamo il "repeat until keypressed;" dico io, ma come si fa?
C'è kbhit() nelle conio.h ma mica ho capito come si usa (anche leggendo il
prolifico help)
Perdonatemi ma sono nuovo con questo linguaggio, e la tentazione di postare
nel newsgroup anche per le banalità è forte.......
Già che ci siete, tanto prossimamente mi servirebbe comunque, per sapere non
solo SE è stato premuto un tasto, ma anche CHE tasto come si fa?
grassie a tutti, scusate la pigrissia ma sono le 22.12, oggi ho avuto un
compitino di analisi e ho la testa in panne.
Byez








(qualche riga di esempio, senza fare tante spiegazioni e senza postare
programmi interi, me la cavo abbastanza e se ho un esempio tiro fuori il
resto)
Byez

 prolifico help)
int main()
{
  ...
  ...
  while(!kbhit());
  ...
  ...
  return 0;
};
che equivale al codice pascal:
while not(keypressed) do;
Saluti dal Grande VEGETA PRINCIPE DEI SAIYAN
     /\    /\
\_/    \/    \_/

 };
'Sta roba non funziona su nessuna piattaforma contemporanea, ne tanto
meno sul BCB di cui chiede l'OP (che e' pure OT). Forse c'e' un motivo
per cui ce la prendiamo tanto con gli OT, ed e' che tipicamente lo
scambio di informazioni interessanti per una ragionevole percentuale dei
frequentatori del newsgroup e' molto bassa, e non e' raro che sia zero
come in questo caso.
Ciao,
Nicola

Ciao,
Questo newsgroup si occupa del linguaggio C++ in quanto tale, e non di
aspetti specifici di particolari implementazioni. Per questo non e' il
posto piu' adatto per porre domande specifiche come la tua.
Potresti avere piu' fortuna su uno dei seguenti gruppi:
Per Win32 (95, 98, NT): it.comp.programmare.win32
Per Dos/Win 3.x: it.comp.os.dos
Per Linux:      it.comp.os.linux.development
Per C++Builder: i gruppi borland.public.cppbuilder.*, disponibili sul
                server 
newsgroups.borland.com
 (prevalentemente in 
                inglese, ma si puo' postare anche in italiano)
Grazie,
Nicola Musatti

Questa però non è key pressed, funziona solo come "returnpressed" :)
while (std::cin.get() != '\n');  <--- Non lo dimenticare il ; perché serve
proprio per fargli eseguire l'istruzione nulla.
Ciao
--
Luigi
http://web.tiscali.it/luigi_web
byte...@hotmail.com

per cui ce la prendiamo tanto con gli OT,
E' una funzione del VC++. I tutorial professionali colpiscono ancora.
Il Ghenio
-----
These are my parting words to you:
those who give up are doomed!
-----

 E' una funzione del VC++. I tutorial professionali colpiscono ancora.
Che io sappia è una funzione molto obsoleta anche in VC++. Tanto che non
è presente nel VC7 e credo neppure nel VC6 (è invece presente la
corrispondente _kbhit il cui nome è conforme allo standard per le
estensioni della libreria e che è chiaramente documentata come non
appartenente allo standard ma alla piattaforma).
--
Andrea Ferro
---------
Brainbench C++ Master. Scored higher than 97% of previous takers
Scores: Overall 4.46, Conceptual 5.0, Problem-Solving 5.0
More info 
http://www.brainbench.com/transcript.jsp?pid=2522556

Scusate ma l'avete provata?
Non credo, altrimenti avreste notato che funziona benissimo.
Sarò anche ignorante ma io ho avviato il mio Borland C++ 5.0 e ho scritto la
riga di codice nel mio programmino e andava benissimo, e faceva quello che
volevo.
Dopodichè ho avviato il Rhide del Djgpp e ho messo la stessa cosa nel mio
programma C. Una meraviglia.
Ora per cortesia rispondetemi, ma il <conio.h> è una libreria considerata
"standard"?
Sarò pure ignorante ma io la considero tale.......
Grazie mille a Vegeta e a Luigi che hanno cercato di aiutarmi.
Ah dimenticavo, un giorno mi spiegherete anche cosa è per voi una
"piattaforma contemporanea", il "BCB", e tutti quegli altri paroloni che
tirate fuori per mettermi in difficoltà.... peraltro, per quanto io sia
ignorante, in modo poco efficace.....

 Sarò pure ignorante ma io la considero tale.......
No. Non esiste conio.h nello standard.


 come in questo caso.
E non smazzate la mazza parlando di standard.... e che cavolo... la
soluzione più semplice era quella!!! E poi la libreria conio.h sarà anche
fuori dallo standard, ma se permetti molti compilatori la forniscono (come
il DJGPP e il BORLAND c++). Dato ke la maggior parte di noi comuni mortali
utilizza compilatori ke, nostro "malgrado" (detto ironicamente) forniscono
tale libreria... perchè non usarla? E poi, standard o no, quando quella
funzione non gli andrà più bene perchè la piattaforma su cui lavorerà non
permetterà di usare conio.h allora ne riparleremo. Ora ha risolto tanto
allegramente il problema... perchè demoralizzarlo?


soluzione più semplice era quella!!!
Allora quando la soluzione più semplice è un'api di win dobbiamo
suggerire quella sul ng?
-- 
Marco Barisione (ICQ 84277092)

Se posso dire la mia, io ho preferito usare <conio.h> piuttosto che sentirmi
dire che con le standard non si poteva fare....... (o si poteva fare con
1000 righe di codice), dopotutto ho citato i compilatori usati
apposta.......
Sul fatto che la soluzione era OT vi dò ragione.
Ma dovreste anche notare, per rispetto degli altri newsgroup, che questa
domanda era OT anche su *.win32, su *.linux e su tutti i newgroup italiani
che conosco.
Ne deduco che non posso avere questo tipo di dubbi.......
^_^

 suggerire quella sul ng?
Rispondere con un'API di win sarebbe davvero OT. Dire di usare un kbhit() ke
deriva da una libreria ke moltissimi compilatori forniscono non mi pare poi
tanto OT.

 newgroup italiani che conosco.
no, su icol.development ti avrebbero detto di usare le ncurses, su 
win32 di usare le API, altrove i meccanismi specifici dell'OS. 
Perche ritieni il contrario?

 "standard"?
1) non e' una libreria, ma un header file
2) non e' standard
-- 
Maurizio Loreti                         
http://www.pd.infn.it/~loreti/mlo.html
Univ. of Padova, Dept. of Physics - Padova, Italy            
lor...@pd.infn.it

Sarň pure ignorante ma io la considero tale.......
No, non lo é. In diversi compilatori non la trovi neanche.


 ignorante, in modo poco efficace.....
Suppongo che "piattaforma contemporanea" sia l'unione di "piattaforma"
(= architettura del computer + sistema operativo) e "contemporanea", che
ha il significato dato al termine dalla lingua italiana. BCB è un
acronimo che stà per Borland C++ Builder (ce tu stesso hai citato).
Ciao,
Cecco

 suggerire quella sul ng?
Si infatti, perche' quella scomodita' di usare usare std::string::c_str()
per convertire una stringa in const char*, perche' mai quelli dello
standard non abbiano deciso a mettere questo operatore.... dannati...
Meglio usare CString di M$.
Bill For President.
Ciao
Gaetano.
-- 
Posted from 
dell-01.mm.eutelsat.org
 [194.214.173.17] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Bill For President.
NOOOOOOOOOOOOOOOOOOoooooooooo.....!!!!!!!

 non mi pare poi tanto OT.
Anche le  API di win  possono essere  chiamate da tutti  compilatori che
girano sotto win, non vedo la differenza.
conio.h non e` standard. Punto.
Tip: getchar
ciao
Kronos
-- 
Home: 
http://kronoz.cjb.net
Io mi ricordo sempre il compleanno della mia ragazza:
cade il giorno dopo di quando lei me lo ricorda

 conio.h non e` standard. Punto.
DOH!!!

 acronimo che stà per Borland C++ Builder (ce tu stesso hai citato).
piattaforma contemporanea l'ho messa per fare polemica, l'acronimo BCB non
lo conoscevo.....