Torna indietro   Hardware Upgrade Forum > Software > Programmazione

realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole!
Hogwarts arriva in fascia media grazie a realme, con una special edition che unisce la Quadra Light-Sensing Color-changing Tech, un baule in stile Hogwarts Express pieno di collezionabili e una scheda tecnica sostanzialmente identica al 16 Pro di partenza: ecco cosa cambia davvero, come si comporta nell'uso quotidiano e quanto vale in base al prezzo di 699,99 euro
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce
REDMI Note 17 Pro porta in fascia media una batteria da 8.340 mAh con ricarica HyperCharge a 67W, un display AMOLED da 6,83 pollici capace di picchi di luminosità molto elevati e una struttura certificata TÜV SÜD contro cadute e infiltrazioni d'acqua, il tutto racchiuso in una scocca da 223 grammi. Lo abbiamo provato per diversi giorni tra fotocamera, prestazioni, autonomia e prezzo sul mercato italiano
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-06-2006, 14:27   #1
scarface7
Junior Member
 
Iscritto dal: Apr 2006
Messaggi: 15
[C] caricamento elenco da file

salve ragazzi,
avrei una cosa da chiedervi:
devo fare un programma che mi carichi un elenco di auto da file con la seguente sintassi:
!marca!modello!prezzo!

ho creato la seguente funzione:

int carica(FILE *f,automobile el[])

{
int i,k;

for(i=0;!feof(f);i++){


for(k=0;(el[i].marca[k]=fgetc(f))!='!';k++);
el[i].marca[k]='\0';
for(k=0;((el[i].modello[k]=fgetc(f))!='!')&&!feof(f);k++);
el[i].modello[k]='\0';
fscanf(f,"%f \n ",&(el[i].prezzo));
}

return i;

}


vorrei chiedervi come devo fare per far caricare anche il primo punto esclamativo !...?

riesco solo a caricare marca,modello e prezzo,ma a causa del mancato caricamento del primo punto esclamativo a video l'elenco mi compare molto male..

ringrazio anticipatamente per le vostre risposte...
scarface7 è offline   Rispondi citando il messaggio o parte di esso
Old 15-06-2006, 14:41   #2
Andlea
Senior Member
 
Iscritto dal: Nov 2004
Messaggi: 357
non fai prima con
Codice:
fscanf("!%s!%s!%f!", el[i].marca, el[i].modello, &el[i].prezzo);
?
Andlea è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 12:25   #3
scarface7
Junior Member
 
Iscritto dal: Apr 2006
Messaggi: 15
no non mi carica nulla se faccio come dici tu...

chi altro saprebbe darmi un aiuto..per piacere
scarface7 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 13:11   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da scarface7
chi altro saprebbe darmi un aiuto..per piacere
Potresti magari postare la dichiarazione della struttura automobile??
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 14:09   #5
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da scarface7
no non mi carica nulla se faccio come dici tu...
perche' ci sono i ! dentro il file

prova cosi':
Codice:
int carica(FILE *f,automobile el[]) 
{
   int i,k;

   for(i = 0; !feof(f); i++ )
   {
      el[i].marca[0] = fgetc(f);
      for( k = 1; (el[i].marca[k] = fgetc(f)) != '!'; k++ )
         ;   
      el[i].marca[k] = '\0';

      el[i].modello[0] = fgetc(f);
      for( k = 1; ((el[i].modello[k] = fgetc(f)) != '!' ) && !feof(f); k++ )
         ;
      el[i].modello[k]='\0';


      el[i].prezzo = '!';
      fscanf( f, "%f \n ",&(el[i].prezzo+1));
   }
   return i;
}
scusa se ho reindentato ma era per capire ... non posso sdeindentarlo dopo

in pratica leggi il primo carattere (!) e il ciclo parte da 1 anziche da 0

non so se ci sono errori non ho compilato e controllato bene. Comunque non e' un bel sistema, per me, per gestire records su file
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 14:47   #6
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Mi sa che:
Codice:
   el[i].modello[0] = fgetc(f);
la devi sostituire con:
Codice:
   el[i].modello[0] = '!';
perche' il char '!' l'ha gia' letto ed e' quello che fa interrompere il ciclo precedente.

Comunque ti consiglio records a lunghezza fissa.
In C gia' e' dura stare attenti a tutto, se ti complichi la vita
non ti passa piu'

poi leggi/scrivi interi blocchi con fread(..) e fwrite(...)
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 18:04   #7
scarface7
Junior Member
 
Iscritto dal: Apr 2006
Messaggi: 15
grazie..comunque non uso fread e fwrite perchè non rientrano nel programma.ora provo un pò e ti faccio sapere..
scarface7 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 18:08   #8
scarface7
Junior Member
 
Iscritto dal: Apr 2006
Messaggi: 15
niente ancora..neanche il tuo codice funziona..

vi copio il file txt da leggere:

8
!Opel!Astra!18000.00!
!Fiat!Punto!13500.00!
!Audi!A4!32000.00!
!Renault!Megane!22999.99!
!Fiat!Punto!13500.00!
!Opel!Corsa!12300.00!
!Alfa Romeo!147!29999.99!
!Citroen!C3!14850.00!
!Fiat!Multipla!15550.00!
scarface7 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 18:21   #9
scarface7
Junior Member
 
Iscritto dal: Apr 2006
Messaggi: 15
codice e schermata a video

allora vi posto prima il codice della mia funzione e poi cosa mi compare a video:

CODICE:

int carica(FILE *f,automobile el[])

{
int i,k,n;
fscanf(f,"%d",&n);

for(i=0;!feof(f);i++){
fscanf(f,"!");
for(k=0;(el[i].marca[k]=fgetc(f))!='!';k++);
el[i].marca[k]='\0';
for(k=0;((el[i].modello[k]=fgetc(f))!='!')&&!feof(f);k++);
el[i].modello[k]='\0';
fscanf(f,"%f!\n",&(el[i].prezzo));

}

return i;

}

SCHERMATA A VIDEO:

digitare il nome del file da caricare: auto.txt
sono stati caricati 10 record dal file auto.txt
Premere un tasto per continuare . . .
visualizzazione dell'elenco a video:

!Opel!0.00
Astra!18000.00!0.00
Fiat!Punto!13500.00
Audi!A4!32000.00
Renault!Megane!22999.99
Fiat!Punto!13500.00
Opel!Corsa!12300.00
Alfa Romeo!147!29999.99
Citroen!C3!14850.00
Fiat!Multipla!15550.00
Premere un tasto per continuare . . .


potreste gentilmente correggere il mio errore..grazie
scarface7 è offline   Rispondi citando il messaggio o parte di esso
Old 16-06-2006, 20:11   #10
Qu@ker
Member
 
Iscritto dal: Apr 2004
Messaggi: 130
Giusto per darti un suggerimento:
Codice:
#include <stdio.h>

typedef struct _elem {
	char marca[16];
	char modello[16];
	float prezzo;
} elem;

int main()
{
	elem el[10];
	int i, j, dummy;
	FILE *in = fopen("auto.txt", "r");
	fscanf(in, "%d", &dummy);
	printf("Letto: %d\n", dummy);
	i = 0;
	while (fscanf(in, " !%[^!]!%[^!]!%f!",
			  el[i].marca, el[i].modello,
                          &el[i].prezzo) == 3)
		++i;
	fclose(in);
	printf("Caricati %d record\n\n", i);

	puts("   marca  |  modello |  prezzo  |");
	puts("---------------------------------");
	for (j = 0; j < i; ++j) {
		printf("%10s %10s\t%.2f\n", 
		       el[j].marca, el[j].modello,
                       el[j].prezzo);
	}

	return 0;
}
Codice:
goku@big:/tmp$ ./leggifile
Letto: 8
Caricati 9 record

   marca  |  modello |  prezzo  |
---------------------------------
      Opel      Astra   18000.00
      Fiat      Punto   13500.00
      Audi         A4   32000.00
   Renault     Megane   22999.99
      Fiat      Punto   13500.00
      Opel      Corsa   12300.00
Alfa Romeo        147   29999.99
   Citroen         C3   14850.00
      Fiat   Multipla   15550.00
goku@big:/tmp$
Qu@ker è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


realme 16 Pro Harry Potter Edition: il nuovo midrange ha uno stemma di Hogwarts che cambia colore al sole! realme 16 Pro Harry Potter Edition: il nuovo mid...
Recensione REDMI Note 17 Pro: il midrange con batteria da 8.340 mAh e ricarica veloce Recensione REDMI Note 17 Pro: il midrange con ba...
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
28 offerte Amazon da non perdere: e-bike...
'Il rapporto con Sony è rimasto f...
Vision AI Upscaling e Micro RGB AI Engin...
NVIDIA GeForce RTX 6000, anche il leaker...
In arrivo la 'pagella' per i datacenter:...
Celle perovskite-silicio al 34% grazie a...
Apple prepara il suo nuovo hub intellige...
La Cadillac Lyriq-V elettrica sbarca in ...
Amazon: arriva l'opzione per aggiungere ...
Un developer usa Claude Code per creare ...
Relativity Space annuncia i progressi ne...
Il nuovo Resident Evil supera ogni prece...
Hai appena sconfitto un boss e parte lo ...
Ray tracing anche senza montagne di VRAM...
TSMC prepara il processo a 1,4 nm: quatt...
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: 17:40.


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