Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più
Abbiamo provato Samsung Galaxy Tab S12 Ultra nella versione 12 GB + 256 GB con tastiera, e il risultato è un tablet che in questa configurazione si comporta come un notebook con la fluidità tipica di Android. Spessore di 5,1 mm, display Dynamic AMOLED 2X da 14,6 pollici, MediaTek Dimensity 9500 e un software senza incertezze compongono un prodotto di vertice, con prezzi da 1.539 euro, frenato solo da un'autonomia nella parte bassa del confronto
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura)
Abbiamo provato per dieci giorni la Hyundai IONIQ 5 N, con 650 CV, 770 Nm e uno 0-100 km/h in 3,4 secondi. Il suo punto forte è N e-Shift, che simula un cambio a otto rapporti con suoni da motore termico e perfino un bang supersonico
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale
La prima tappa italiana della Road to CES porta a Milano i vertici della Consumer Technology Association, con una nuova griglia di lettura dei trend tecnologici e una posizione netta su dazi e regolamentazione dell'IA
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


Recensione Samsung Galaxy Tab S12 Ultra: non chiamatelo tablet... è molto di più Recensione Samsung Galaxy Tab S12 Ultra: non chi...
Hyundai IONIQ 5 N, l'elettrica che finge di essere termica (e ci riesce da paura) Hyundai IONIQ 5 N, l'elettrica che finge di esse...
CES Unveiled Milan, l'IA diventa tecnologia fondativa e il commercio torna centrale CES Unveiled Milan, l'IA diventa tecnologia fond...
 Recensione OPPO Find X10 Pro Max: un top di gamma completo con tre fotocamere da 200MP Recensione OPPO Find X10 Pro Max: un top di gam...
WoW Forever provato: il MMORPG che la community chiedeva da anni è arrivato WoW Forever provato: il MMORPG che la community ...
NVIDIA smentisce la fine della RTX 5090,...
Microsoft ha avviato un programma di usc...
Oracle lancia Fusion Claw: gli agenti di...
Oracle e Astrazeneca insieme per lo svil...
Anthropic e la quotazione: cosa emerge d...
Condanna milionaria per il sessantottenn...
HONOR Robot Phone a Movieland: abbiamo g...
Google Messaggi introduce la Protezione ...
Vera Rubin, NVIDIA aggiorna le specifich...
Google Health 5.11 amplia il rilevamento...
Legacy Games chiude dopo quasi 30 anni: ...
iPhone Duo avvia le automazioni quando l...
Tomb Raider: Legacy of Atlantis, rivelat...
Instagram arriva su Apple TV con un'app ...
Meta lancia un'offerta azionaria da 35 m...
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: 04:12.


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