Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale
Nelle ultime settimane abbiamo provato la Corsair Vanguard Air 99 Wireless, una tastiera tecnicamente da gaming, ma che in realtà offre un ampio ventaglio di possibilità anche al di fuori delle sessioni di gioco. Flessibilità e funzionalità sono le parole d'ordine di una periferica che si rivolge a chi cerca un prodotto capace di adattarsi a ogni esigenza e ogni piattaforma
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio
DEEBOT T90 PRO OMNI abbina un sistema di aspirazione basato su tecnologia BLAST ad un rullo di lavaggio dei pavimenti dalla larghezza elevata, capace di trattare al meglio le superfici di casa minimizzando i tempi di lavoro. Un robot completo che riesce anche ad essere sottile e garantire automazione ed efficienza nelle operazioni di pulizia di casa
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo
Per diversi giorni il Galaxy S26 Ultra di Samsung è stato il nostro compagno di vita. Oltre alle conferme del colosso coreano come la qualità del display e una suite AI senza rivali, arriva il Privacy Display, un unicum nel mondo smartphone. Ci sono ancora alcuni gap che non sono riusciti a colmare lato batteria e fotocamera, seppur con alcuni miglioramenti.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-01-2009, 15:21   #1
C-noobprogrammer
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 18
[C] problema con fscanf

.

Ultima modifica di C-noobprogrammer : 26-01-2009 alle 23:48.
C-noobprogrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 15:58   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Utilizza fgets per leggere una riga:
http://www.cplusplus.com/reference/c...dio/fgets.html
Dopo puoi usare strtok per dividere la stringa: http://www.cplusplus.com/reference/c...ng/strtok.html
Poi usa strcpy per copiare i vari elementi nella tua struttura.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 17:47   #3
C-noobprogrammer
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 18
ci avevo pensato di mettere riga x riga in una stringa (e poi stidiarla, magari con un while s[i] != ',' per analizzare i pezzi fino alla virgola)... sarebbe proprio quello che vorrei, ma c'è un problema...la fgets incorre in un difetto se il file termina con '\n': non trovando niente, ripete il contenuto della lettura precedente.

altra cosa: diciamo k faccio così con la fgets. dovrei in qualche modo salvare il contenuto di ogni riga in una stringa diversa, e non sapendo quante righe ho non è che posso dichiarare tutte le stringhe all'inizio....
C-noobprogrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:02   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Non devi memorizzare tutte le righe, ma solamente una alla volta, quindi devi dichiarare una stringa sola per contenere una riga. A questo punto la spezzetti, la memorizzi nella tua struttura dati e passi alla riga successiva.

Per evitare che ti faccia una lettura doppia fai:

Codice:
while(1) /*è un ciclo infinito */
{
   fgets(...);
   if(feof(f))
      break;  /* se abbiamo raggiunto la fine del file usciamo */

   /* qui elabori e spezzetti la stringa */
}

Ultima modifica di cionci : 24-01-2009 alle 18:06.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:17   #5
C-noobprogrammer
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 18
hai ragione, non ci avevo pensato

introduco in contatore all'interno del ciclo while(fgets(..) != EOF) e con questo assegno riga per riga i valori nei vettori di struct.

Grazie mille per l'aiuto, e soprattutto per la tempestività.
C-noobprogrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:24   #6
C-noobprogrammer
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 18
ultima cosa, non sono molto pratico della fgets:
come gestisco il fatto che devo passarle anche la dimensione della stringa?
io non so quanti caratteri possono esserci in una riga del file..
C-noobprogrammer è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:30   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Gli passi la dimensione MASSIMA, non il numero dei caratteri. La dimensione massima corrisponde alla dimensione del buffer che usi per memorizzare la stringa.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 24-01-2009, 18:34   #8
C-noobprogrammer
Junior Member
 
Iscritto dal: Jan 2009
Messaggi: 18
allora perfetto

grazie mille ancora
C-noobprogrammer è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Corsair Vanguard Air 99 Wireless: non si era mai vista una tastiera gaming così professionale Corsair Vanguard Air 99 Wireless: non si era mai...
Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lavaggio è ampio Ecovacs DEEBOT T90 PRO OMNI: ora il rullo di lav...
Recensione Samsung Galaxy S26 Ultra: finalmente qualcosa di nuovo Recensione Samsung Galaxy S26 Ultra: finalmente ...
Diablo II Resurrected: il nuovo DLC Reign of the Warlock Diablo II Resurrected: il nuovo DLC Reign of the...
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
Componenti PC in offerta su Amazon: GPU,...
Ecobonus moto elettriche 2026: fino a 4....
Le nuove offerte Amazon, con aggiornamen...
5 motivi per comprare oggi Motorola Edge...
I produttori di memorie non vogliono inv...
VMware Hosted Private Cloud, il cloud pr...
Le cuffie per giocatori JBL Quantum 910X...
Xiaomi Watch S3 a prezzo dimezzato: 15 g...
Nothing Phone (2a) a poco più di ...
OnePlus prepara due nuovi tablet Android...
ASUS Zenbook supera MacBook Air in tutto...
Amazfit Active 2 a 71,49€ protagonista d...
Tutti gli iPhone avranno display ProMoti...
DLSS 5 irriso sul web, secondo il CEO di...
Scoperta al CERN una particella mai vist...
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:03.


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