Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa
AWS è il principale operatore di servizi cloud al mondo e da tempo parla delle misure che mette in atto per garantire una maggiore sovranità alle organizzazioni europee. L'azienda ha ora lanciato AWS European Sovereign Cloud, una soluzione specificamente progettata per essere separata e distinta dal cloud "normale" e offrire maggiori tutele e garanzie di sovranità
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto
Xiaomi ha portato sul mercato internazionale la nuova serie Redmi Note, che rappresenta spesso una delle migliori scelte per chi non vuole spendere molto. Il modello 15 Pro+ punta tutto su una batteria capiente e su un ampio display luminoso, sacrificando qualcosa in termini di potenza bruta e velocità di ricarica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-01-2004, 09:18   #1
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
Pulire il buffer di tastiera[c/c++]

Cerco una funzione che pulisca il buffer di tastiera, perchè sto costruendo un gico in stile asteroids per una esercitazione di scuola, lavoriamo su uno schifosissimo borland 5.02 in modalita grafica sotto dos a 256 colori, e non riesco a pulire i tasti premuti precedentemente neanche con fflush(stdin);, qualcuno di voi massimi esperti conosce un qualsiasi modo per poter risolvere questo problema, anche includendo delle librerie o con un pezzo di codice scritto in assembler, come vi pare, basta funzioni.
La navicella si sposta però avvolta rimangono in memoria i tasti premuti precedentemente e va un po come gli pare.
Cionci aiutami!!!
Grazie
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2004, 14:11   #2
alderighi
Senior Member
 
L'Avatar di alderighi
 
Iscritto dal: Sep 2002
Città: vinci-spicchio
Messaggi: 530
up
nessuno che mi da una mano?
__________________
Intel Pentium DualCore E2140 1,60 GHz , Asus P5LD2 R2.0,Sapphire x600xt 128Mb,hauppauge winTV,2x256Mb Ddr2 Vitesta 533Mhz,western digital caviar 160gb, seagate 20gb 5400giri, maxtor 40gb 7200giri, dvd+-rw gigabyte(BTC) 4x,Samsung writemaster dvd duallayer 18x , edimax wireless<-->router D-link G604T.
alderighi è offline   Rispondi citando il messaggio o parte di esso
Old 27-01-2004, 14:17   #3
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Un modo (non standard e poco pulito) è usare le funzioni di conio.h:
while(kbhit()) getch();
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 02-02-2004, 21:35   #4
Gogeta ss4
Senior Member
 
L'Avatar di Gogeta ss4
 
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
fflush(stdin);
Gogeta ss4 è offline   Rispondi citando il messaggio o parte di esso
Old 03-02-2004, 00:24   #5
Ziosilvio
Moderatore
 
L'Avatar di Ziosilvio
 
Iscritto dal: Nov 2003
Messaggi: 16213
Quote:
Originariamente inviato da Gogeta ss4
fflush(stdin);
E' una soluzione consigliata spesso.
Purtroppo non è standard, e può funzionare o meno a seconda del compilatore.
(E, a quanto ci dice alderighi, in questo caso non va.)

A proposito: catturare un segnale da tastiera (anziché leggere semplicemente un carattere dallo standard input) è un'operazione fortemente machine-dependent.
Temo che in questo caso sia d'obbligo consultare il manuale del compilatore.
Ziosilvio è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 16:43   #6
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Raga , io ho trovato anke

Codice:
while ( getchar() != '\n' );
e sembra funzionare , ank io avevo un problema con la funzione "scanf" (quando veniva inserito un carattere al posto di un intero la scanf "impazziva e andava in loop" ) , che ho risolto con questo codice qua sopra, ma per ste operazioni non c'è una procedura standard? Su linux ad esempio "fflush(stdin);" non va manco a pagarlo (dato che a quanto sembra fflush con stdin può dare risultati imprevisti) , cioè , io sul mio libro di C non ho trovato niente ,e non mi è sembrato di trovare niente neanke sul libro di quei ragazzacci di Kerningam e Ritchie , insomma , quand'è che questa operazione si rende necessaria generalmente , e qual'è la procedura migliore per farla?

Grazie

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 16:56   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Su linux ad esempio "fflush(stdin);" non va manco a pagarlo
#include <termios.h>
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 17:13   #8
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827





Ma dici che è una soluzione consigliabile anke se non specificata dallo standard?

Ciao

EDIT : Comunque ilsensine , ho provato a fare come mi hai detto tu , ossia includere "termios.h" , e poi ho provato "fflush(stdin);" , al posto del codice che avevo postato poco sopra , ma non sembra funzionare , con questa va in LOOP e genera una roba del genere :

00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in instruction shell
00 ? Sorry , no letters in inst
bash-2.05b$



Mentre dovrebbe essere :

00 ? s
Sorry , no letters in instruction shell
00 ?


__________________
GPU Compiler Engineer

Ultima modifica di AnonimoVeneziano : 04-02-2004 alle 17:17.
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 17:47   #9
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da AnonimoVeneziano
Ma dici che è una soluzione consigliabile anke se non specificata dallo standard?
Certo che è standard (POSIX)

Quote:
EDIT : Comunque ilsensine , ho provato a fare come mi hai detto tu , ossia includere "termios.h" , e poi ho provato "fflush(stdin);" , al posto del codice che avevo postato poco sopra , ma non sembra funzionare , con questa va in LOOP e genera una roba del genere :
Scordati fflush!
Dai una occhiata a man termios
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 18:06   #10
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Mi inginocchio al tuo cospetto , e ti chiedo umilmente di dirmi come esare le funzioni di sto header per flushare lo STDIN , perchè nella mia somma ignoranza non riesco a decifrare una pippa del man di "termios"

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 20:46   #11
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Nun me abbandonà ilsensì!!

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 21:14   #12
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
tcflush?
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 21:20   #13
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da ilsensine
tcflush?

Si , l'avevo pensato ank io , ma il problema è come lo uso?

Cioè , io sono ankora un principiante , e del MAN non ci ho capito una mazza .

Ho solo capito che al secondo membro della funzione ci devo piazzare "TCIFLUSH" e quindi diventa :

tcflush(XXX, TCIFLUSH);

ma al primo membro che ci metto?

Ho provato

tcflush(stdin, TCIFLUSH);

Ma ovviamente non funziona e mi spara sto warning alla compilazione:

simpletron.c: In function `main':
simpletron.c:40: warning: passing arg 1 of `tcflush' makes integer from pointer without a cast


Come la devo configurare sta funz?
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 21:42   #14
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
man fileno
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 21:56   #15
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Ho tentato sta forma , ma non sembra funzionare :

tcflush(fileno(stdin), TCIFLUSH);


Avrebbe dovuto funzionare o ho scannato anke in questo caso?

Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 22:02   #16
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Boh ho provato, e mi funziona...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 22:16   #17
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da ilsensine
Boh ho provato, e mi funziona...

A me no , ho provato anke con sto programmino di prova :

Codice:
#include <stdio.h>
#include <termios.h>

int main()
{

int prova;

scanf("%d", &prova);
printf("%d\n", prova);
tcflush(fileno(stdin), TCIFLUSH);
scanf("%d", &prova);
printf("%d\n", prova);
return 0;
}
Ma il secondo scanf , se metto un carattere al posto di un intero al momento dell' immissione dell'input del primo scanf, è come se non esistesse , in pratica l'output che ottengo è questo :

Codice:
bash-2.05b$ ./test     <------ Parte il programma
a                       <------ Immetto un carattere al posto di un intero
1073821792     <------  Viene printato un valore intero dal primo printf
1073821792     <------  Il secondo scanf è come se non esistesse e viene subito printato il valore dal secondo printf
bash-2.05b$
Idee?



Ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 22:23   #18
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da AnonimoVeneziano
Idee?
Sì, ma ora devo staccare. Ne riparliamo domani.

(Indizio: stdin è line-buffered di default)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 04-02-2004, 22:25   #19
AnonimoVeneziano
Senior Member
 
L'Avatar di AnonimoVeneziano
 
Iscritto dal: Aug 2001
Città: San Francisco, CA, USA
Messaggi: 13827
Quote:
Originariamente inviato da ilsensine
Sì, ma ora devo staccare. Ne riparliamo domani.

(Indizio: stdin è line-buffered di default)

Ok , ciao
__________________
GPU Compiler Engineer
AnonimoVeneziano è offline   Rispondi citando il messaggio o parte di esso
Old 05-02-2004, 09:25   #20
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Codice:
#include <stdio.h>
#include <termios.h>

int main() {
  int prova;
  struct termios tios;
  int fd = fileno(stdin);

  tcgetattr(fd, &tios);
  tios.c_lflag &= ~ICANON;
  tios.c_cc[VMIN] = 1;
  tios.c_cc[VTIME] = 0;
  tcsetattr(fd, TCSAFLUSH, &tios);

  scanf("%d", &prova);
  printf("%d\n", prova);
  tcflush(fd, TCIFLUSH);
  scanf("%d", &prova);
  printf("%d\n", prova);
  return 0;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
HONOR Magic 8 Pro: ecco il primo TOP del 2026! La recensione HONOR Magic 8 Pro: ecco il primo TOP del 2026! L...
Insta360 Link 2 Pro e 2C Pro: le webcam 4K che ti seguono, anche con gimbal integrata Insta360 Link 2 Pro e 2C Pro: le webcam 4K che t...
Nella capsula Orion di Artemis II ci sar...
L'immagine del mese del telescopio spazi...
Heatspreader originale al posto del wate...
Ubisoft ha definitivamente archiviato Wa...
Motivair by Schneider Electric presenta ...
Un dissipatore che non richiede energia ...
Con Maia 200 Microsoft alza l'asticella ...
La Cina impone requisiti anche per lo st...
Apple lancia AirTag aggiornato: range es...
Microsoft risolve i blocchi di Outlook: ...
OpenAI verso il disastro finanziario? L’...
X nei guai: l'UE indaga sui pericoli del...
Caso Corona-Signorini: il giudice blocca...
470 petaFLOPS con una frequenza di 56 GH...
WhatsApp: abbonamento per rimuovere la p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:11.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v