Torna indietro   Hardware Upgrade Forum > Software > Programmazione

ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm
ASUS e HIFIMAN uniscono le forze per creare ROG Kithara, cuffie gaming con driver magnetici planari da 100mm, design open-back e microfono MEMS full-band. Una proposta che ambisce a coniugare fedeltà per audiofili e performance ludiche, disponibili a 319 euro
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Roborock Qrevo Curv 2 Flow: ora lava con un rullo
Qrevo Curv 2 Flow è l'ultima novità di casa Roborock per la pulizia di casa: un robot completo, forte di un sistema di lavaggio dei pavimenti basato su rullo che si estende a seguire il profilo delle pareti abbinato ad un potente motore di aspirazione con doppia spazzola laterale
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite
Abbiamo guidato per diversi giorni la Alpine A290, la prima elettrica del nuovo corso della marca. Non è solo una Renault 5 sotto steroidi, ha una sua identità e vuole farsi guidare
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-07-2013, 09:57   #1
Alex_G
Junior Member
 
Iscritto dal: Nov 2012
Messaggi: 28
[C] vantaggi fscanf / sgets

Ciao a tutti... In molti esercizi in cui c'è la necessità di recuperare record da file nelle soluzioni spesso trovo che si utilizza il ciclo
while ( fgets(stringa, numerocaratteri, file) =! NULL)
{ sscanf(stringa, "operatoridiconversione", destinazione)
} per prendere record da file e "spezzettarlo"???
In questo modo si salva il record del file in una stringa e successivamente si suddivide; ma a questo punto non è più comodo utilizzare direttamente
while(!feof(f))
{fscanf(file, "operatoridiconversione", destinazione)}
Si evita per esempio di fare il conteggio sul numero di caratteri che ci si aspetta... é la stessa cosa o mi perdo qualcosa ? o.O
Alex_G è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2013, 10:05   #2
matteo170693
Senior Member
 
Iscritto dal: Dec 2009
Messaggi: 2487
è la stessa cosa, io domani ho l'esame di informatica (primo anno) al politecnico (torino) e l'esame verte proprio sul c.

il punto cruciale di solito è la lettura di un file, il metodo migliore è appunto la feof e poi usare fscanf
matteo170693 è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2013, 11:01   #3
SnakePlissken
Member
 
L'Avatar di SnakePlissken
 
Iscritto dal: Aug 2004
Messaggi: 39
Quote:
Originariamente inviato da Alex_G Guarda i messaggi
Ciao a tutti... In molti esercizi in cui c'è la necessità di recuperare record da file nelle soluzioni spesso trovo che si utilizza il ciclo
while ( fgets(stringa, numerocaratteri, file) =! NULL)
{ sscanf(stringa, "operatoridiconversione", destinazione)
} per prendere record da file e "spezzettarlo"???
In questo modo si salva il record del file in una stringa e successivamente si suddivide; ma a questo punto non è più comodo utilizzare direttamente
while(!feof(f))
{fscanf(file, "operatoridiconversione", destinazione)}
Si evita per esempio di fare il conteggio sul numero di caratteri che ci si aspetta... é la stessa cosa o mi perdo qualcosa ? o.O
Che invece è proprio quello che devi fare, pena un buffer overflow. Se nella scanf hai solamente specificatori per interi o reali (%d %f, %u, oppure se hai stringhe di dimensione fissa %10s) allora potrebbe non fare molta differenza. Ma se stai cercando di leggere stringhe di lunghezza variabile, per esempio con
Codice:
scanf("%d %s", &i, buffer);
allora non è affatto la stessa cosa. La gets ti fa il controllo preliminare sul numero massimo di caratteri che leggi, dopo puoi anche usare la scanf.
__________________
Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta.
SnakePlissken è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2013, 11:30   #4
Oceans11
Senior Member
 
L'Avatar di Oceans11
 
Iscritto dal: Sep 2005
Città: Torino
Messaggi: 606
Quote:
Originariamente inviato da SnakePlissken Guarda i messaggi
La gets ti fa il controllo preliminare sul numero massimo di caratteri che leggi.
la fgets, mi raccomando, non la gets. mai usare la gets!!
__________________
"Se proprio dovete piratare un prodotto, preferiamo che sia il nostro piuttosto che quello di qualcun altro." [Jeff Raikes]
"Pirating software? Choose Microsoft!"
Oceans11 è offline   Rispondi citando il messaggio o parte di esso
Old 04-07-2013, 11:58   #5
SnakePlissken
Member
 
L'Avatar di SnakePlissken
 
Iscritto dal: Aug 2004
Messaggi: 39
Quote:
Originariamente inviato da Oceans11 Guarda i messaggi
la fgets, mi raccomando, non la gets. mai usare la gets!!
Pardon! Certo, la fgets!
__________________
Quello che davvero mi interessa è se Dio, quando creò il mondo, aveva scelta.
SnakePlissken è offline   Rispondi citando il messaggio o parte di esso
Old 07-07-2013, 21:13   #6
tecno789
Senior Member
 
L'Avatar di tecno789
 
Iscritto dal: Jan 2010
Città: (MB)
Messaggi: 11971
puoi utilizzare anche :

Codice:
while(!feof(file)) oppure while((ch=getc(file)!=EOF)
__________________
CPU: Ryzen 3700x DISSY: CM HYPER EVO 212 RAM: 16gb DDR4 3000Mhz MOBO: MSI b350 tomahawk VGA: MSI Ventus 2X 4060TI 16GB ALI: Cooler Master V550 SSD: Samsung 970 Evo Plus Trattive+:(a) topolino2808(x2), galfum, giap959, sm_morgan, Biduzzo, huangwei, maxmax80, bubbi, dinamite2, PaxNoctis;(v) rubrie, CubeDs, Slater91, Juvanni, FireFox152, gluvocio, giulio81, emahwupgrade, Velvet, semmy83, giocher03
tecno789 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


ASUS ROG Kithara: quando HIFIMAN incontra il gaming con driver planari da 100mm ASUS ROG Kithara: quando HIFIMAN incontra il gam...
Roborock Qrevo Curv 2 Flow: ora lava con un rullo Roborock Qrevo Curv 2 Flow: ora lava con un rull...
Alpine A290 alla prova: un'auto bella che ti fa innamorare, con qualche limite Alpine A290 alla prova: un'auto bella che ti fa ...
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
TV OLED Panasonic 55'' a 694,98€ su Amaz...
Se non usi l'AI al lavoro, rischi la car...
Le intelligenze artificiali giocano alla...
QUOD: lo sparatutto in stile Quake che p...
SK hynix e Sandisk uniscono le forze per...
È legittimo sostituire i dipendenti con ...
Sony brevetta 'Soft Pause': l'AI potrebb...
AMD ha annunciato EPYC 8005 'Sorano': Ze...
Esiste una versione di Gran Turismo 7 ch...
Lo stato di New York porta Valve in trib...
TV Philips Ambilight a 499€ su Amazon: Q...
AMD investe 150 milioni di dollari in Nu...
NVIDIA vola a 68 miliardi in un trimestr...
Marathon gratis per qualche giorno: week...
Windows 11 e la fine del supporto per i ...
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: 11:30.


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