Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 26-11-2003, 20:18   #1
Gogeta ss4
Senior Member
 
L'Avatar di Gogeta ss4
 
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
[C++] E strutture dati

Ciao a tutti, oggi mi hanno insegnato come si usano le strutture dati etc etc
Ho fatto un programma, ecco il codice:

#include <stdio.h>
#include <conio.h>
struct alunni
{
char cognome[100];
char nome[100];
int voto;
};

typedef struct alunni s_alunni;
void main()
{
s_alunni classe[3];
int i;
for(i=0;i<3;i++)
{
printf("\nCognome: ");
gets (classe[i].cognome);
printf("\nNome: ");
gets(classe[i].nome);
printf("\nVoto: ");
scanf("%d",&classe[i].voto);
}
for(i=0;i<3;i++)
{
printf("\nCognome: %s", classe[i].cognome);
printf("\nNome: %s", classe[i].nome);
printf("\nVoto: %d", classe[i].voto);
}
getch();
}

Il compilatore non mi da nessun errore, ma quando lancio il programma mi succede una cosa strana, al primo ciclo inserisco cognome , nome e voto senza nessun problema, al secondo ciclo, quando devo riinserire nome cognome e voto mi scrive:
"
Cognome:
Nome: // mi sa inserire il nome saltando il cognome!!

E come se al secondo ciclo di inserimento non mi vedrebbe il primo gets e quindi fa 2 printf e poi il gets per inserire il nome.
Dove sta l'errore??

Ecco uno screen Shot:


Ultima modifica di Gogeta ss4 : 26-11-2003 alle 20:21.
Gogeta ss4 è offline   Rispondi citando il messaggio o parte di esso
Old 26-11-2003, 23:51   #2
dm69
Senior Member
 
Iscritto dal: Dec 2001
Messaggi: 428
Prova a sostituire gets con scanf (ovviamente cambiando anche i parametri).
Non sono sicuro ma gets e printf potrebbero bufferizzare i caratteri differentemente.

Eventualmente metti anche una flush al termine del blocco nel for.

Ciao.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition
dm69 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2003, 00:05   #3
dm69
Senior Member
 
Iscritto dal: Dec 2001
Messaggi: 428
Forse il problema e' semplicemente questo:
inserendo

bla bla

non stai inserendo una stringa sola, ma due, e' per questo che la gets successiva salta una lettura.

ciao.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition
dm69 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2003, 01:35   #4
Tortellone
Senior Member
 
L'Avatar di Tortellone
 
Iscritto dal: Sep 2002
Città: Napoli
Messaggi: 543
ma quelle ke stai usando non sono le librerie standard del C ?
le funzioni di i/o del c++ di solito usate sono cin e cout...
se invece è possibile usare anke printf,scanf per il c++ kiedo venia..


p.s.

altra notazione.. in c++ ormai non c'è bisogno più di scrivere ".h" per le librerie ke si includono... o almeno lo standard nuovo così prevede..

la nuova versione del file stdio.h per il c++ è cstdio

Ultima modifica di Tortellone : 27-11-2003 alle 01:40.
Tortellone è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2003, 06:43   #5
Luc@s
Senior Member
 
L'Avatar di Luc@s
 
Iscritto dal: Apr 2002
Città: Vigevano(PV)
Messaggi: 2124
Quote:
Originariamente inviato da Tortellone
se invece è possibile usare anke printf,scanf per il c++ kiedo venia..
Sono tenuto negli header cxxx(senza .h) per retrocompatibilità
__________________
Gnu/Linux User
Luc@s è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2003, 10:43   #6
dm69
Senior Member
 
Iscritto dal: Dec 2001
Messaggi: 428
Quote:
ma quelle ke stai usando non sono le librerie standard del C ?
le funzioni di i/o del c++ di solito usate sono cin e cout...
se invece è possibile usare anke printf,scanf per il c++ kiedo venia..
Considera che qualunque programma C e' anche e' un programma C++, quindi non c'e' problema.
La scelta di quale funzioni usare dipende dall'abitudine di chi programma.
Certamente usare solamente la leibreria del C++ e' piu' elegante e moderno.

Ciao.
__________________
PC: Phenom 2 955, 4 GB RAM DDR3, 2 x ATI HD 7870 Ghz edition
dm69 è offline   Rispondi citando il messaggio o parte di esso
Old 27-11-2003, 22:06   #7
Gogeta ss4
Senior Member
 
L'Avatar di Gogeta ss4
 
Iscritto dal: May 2001
Città: Milano
Messaggi: 3197
Allora problema risolto
Il problema sta nel fatto che alcune volte il gets da problemi ma nn con tutti i compilatori
Ho messo ha tutti scanf e va ok, altrimenti si può usare la funzione che scuota il buffer dopo ogni gets: fflush(stdin);
Gogeta ss4 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Dongfeng sfida la NATO: navi dalla Cina ...
5G Standalone per il mondo marittimo: Er...
Nova Lake-S: configurazioni fino a 52 co...
Baxi presenta la pompa di calore Alya E ...
PC ASUS e Acer vietati in Germania: il t...
Stellantis rilancia il diesel in Europa:...
Truffa per utenti Trezor e Ledger: lette...
Wi-Fi 7 conveniente: FRITZ! lancia 4630,...
La Formula 1 dei robot tagliaerba miglio...
Il nuovo gioco del creatore di God of Wa...
Grok arriva sulle Tesla in Europa: l'int...
Assassin's Creed IV: Black Flag Remake p...
Il padre di God of War attacca Sons...
È operativo il primo computer qua...
Western Digital avverte: anche gli hard ...
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: 21:20.


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