Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici
DJI porta un importante aggiornamento alla sua linea di gimbal camera tascabili con Osmo Pocket 4: sensore CMOS da 1 pollice rinnovato, gamma dinamica a 14 stop, profilo colore D-Log a 10 bit, slow motion a 4K/240fps e 107 GB di archiviazione integrata. Un prodotto pensato per i creator avanzati, ma che convince anche per l'uso quotidiano
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori
Il primo headset open-back della linea INZONE arriva a 200 euro con driver derivati dalle cuffie da studio MDR-MV1 e un peso record di soli 199 grammi
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA
Al .NEXT 2026 di Chicago, Nutanix ha mostrato quanto sia cambiata: una piattaforma software che gestisce VM, container e carichi di lavoro IA ovunque, dall’on-premise al cloud pubblico. Con un’esecuzione rapidissima sulle partnership e sulla migrazione da VMware
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2005, 08:55   #1
D4rkAng3l
Bannato
 
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2688
[C] Problema lettura da file

ahhh l'esame di programmazione è una rovina

Qualche giorno fà avevo fatto un programma che scriveva su file (allegato quà sotto), oa ne ho fatto uno che dovrebbe leggere i dati precedentemente inseriti dal file e stamparli sullo schermo ma non mi funziona (me ne girasse mai uno...) che c'ha secondo voi?

1)
/* Creare un file sequenziale */

#include <stdio.h>

int main(){

int account;
int name[30];
float balance;
FILE *cfPtr; // Puntatore al file clients.dat

if((cfPtr = fopen("clients.dat", "w")) == NULL)
printf("Il file non puo' essere aperto\n");
else{
printf("Inserire l'account, il nome e il bilancio\n");
printf("? ");
scanf("%d%s%f", &account, name, &balance);

while(!feof(stdin)){
fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
printf("? ");
scanf("%d%s%f", &account, name, &balance);
}

fclose(cfPtr);

system("PAUSE");
}
return 0;
}

2)/* Leggere e stampare un file sequenziale */

#include <stdio.h>

int main(){

int account;
int name[30];
float balance;
FILE *cfPtr; // Puntatore al file clients.dat

if((cfPtr = fopen("clients.dat", "r")) == NULL)
printf("Il file non può essere aperto");
else{
printf("%-10s%-13s%s\n", "Account", "Name", "Balance");
fscanf(cfPtr, "%d%s%f", &account, name, &balance);

while(!feof(cfPtr)){
printf("%-10d%-13s%7.2f\n", account, name, balance);
fscanf(cfPtr, "%d%s%f", &account, name, &balance);
}

fclose(cfPtr);
}

system("PAUSE");
return 0;
}


3)contenuto del file clients.dat
100 Ugo 74.50
200 Massimo 66.00
300 Francesca 454.00
D4rkAng3l è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 09:08   #2
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
Forse il problema risale alle stringe,
Cioè quando va a scrivere la stringa la scrive fino a quando non trova il carattere '\0' OK,
invece qundo vai a leggere (Forse ) legge tutti i 30 carattere senza magari tener conto dello '\0' ma non ti so dare la certezza, questa è solo un ipotesi
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 09:15   #3
tglman
Senior Member
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
Pero da come è scritto nelle specifiche non dorebbe creare questi problemi
http://www.cplusplus.com/ref/cstdio/fscanf.html
tglman è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 09:28   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Re: [C] Problema lettura da file

Quote:
Originariamente inviato da D4rkAng3l
ahhh l'esame di programmazione è una rovina

Qualche giorno fà avevo fatto un programma che scriveva su file (allegato quà sotto), oa ne ho fatto uno che dovrebbe leggere i dati precedentemente inseriti dal file e stamparli sullo schermo ma non mi funziona (me ne girasse mai uno...) che c'ha secondo voi?

1)
/* Creare un file sequenziale */

#include <stdio.h>

int main(){

int account;
int name[30];
float balance;
FILE *cfPtr; // Puntatore al file clients.dat

if((cfPtr = fopen("clients.dat", "w")) == NULL)
printf("Il file non puo' essere aperto\n");
else{
printf("Inserire l'account, il nome e il bilancio\n");
printf("? ");
scanf("%d%s%f", &account, name, &balance);

while(!feof(stdin)){
fprintf(cfPtr, "%d %s %.2f\n", account, name, balance);
printf("? ");
scanf("%d%s%f", &account, name, &balance);
}

fclose(cfPtr);

system("PAUSE");
}
return 0;
}

2)/* Leggere e stampare un file sequenziale */

#include <stdio.h>

int main(){

int account;
int name[30];
float balance;
FILE *cfPtr; // Puntatore al file clients.dat

if((cfPtr = fopen("clients.dat", "r")) == NULL)
printf("Il file non può essere aperto");
else{
printf("%-10s%-13s%s\n", "Account", "Name", "Balance");
fscanf(cfPtr, "%d%s%f", &account, name, &balance);

while(!feof(cfPtr)){
printf("%-10d%-13s%7.2f\n", account, name, balance);
fscanf(cfPtr, "%d%s%f", &account, name, &balance);
}

fclose(cfPtr);
}

system("PAUSE");
return 0;
}


3)contenuto del file clients.dat
100 Ugo 74.50
200 Massimo 66.00
300 Francesca 454.00
scusa, ma, se "name" è una stringa, come mai lo dichiari come un array di int?

tu dichiari: int name[30]

e poi lo prendi con scanf senza l'&.

Dovresti dichiararlo come array di char:

char name[30]

e poi puoi prenderlo con scanf senza l'&.

Se ho scritto stupidate, la giuria è pregata di non tenerne conto
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 13:41   #5
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
Re: Re: [C] Problema lettura da file

Quote:
Originariamente inviato da RaouL_BennetH
scusa, ma, se "name" è una stringa, come mai lo dichiari come un array di int?

tu dichiari: int name[30]

e poi lo prendi con scanf senza l'&.

Dovresti dichiararlo come array di char:

char name[30]

e poi puoi prenderlo con scanf senza l'&.

Se ho scritto stupidate, la giuria è pregata di non tenerne conto
i caratteri char sono definiti in C come interi int a 8 bit. quindi sono solo degli interi che però occupano 8 bit a differenza dei 32 bit degli int (sulle macchine x86). poi siccome name è un array (e quindi un puntatore) quando fa lo scanf non serve mettere l'& visto che è proprio name la variabile a contenere l'indirizzo.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 25-02-2005, 14:12   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Re: Re: Re: [C] Problema lettura da file

Quote:
Originariamente inviato da VegetaSSJ5
i caratteri char sono definiti in C come interi int a 8 bit. quindi sono solo degli interi che però occupano 8 bit a differenza dei 32 bit degli int (sulle macchine x86)
Indubbiamente è così, ma io mi chiedevo solo perchè per memorizzare una stringa lui utilizzasse un array di int e non di tipo char, non intendevo che era sbagliato.


Quote:
. poi siccome name è un array (e quindi un puntatore) quando fa lo scanf non serve mettere l'& visto che è proprio name la variabile a contenere l'indirizzo.

qui ho toppato alla grandissima
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Pocket 4: la gimbal camera tascabile cresce e ha nuovi controlli fisici DJI Osmo Pocket 4: la gimbal camera tascabile cr...
Sony INZONE H6 Air: il primo headset open-back di Sony per giocatori Sony INZONE H6 Air: il primo headset open-back d...
Nutanix cambia pelle: dall’iperconvergenza alla piattaforma full stack per cloud ibrido e IA Nutanix cambia pelle: dall’iperconvergenza alla ...
Recensione Xiaomi Pad 8 Pro: potenza bruta e HyperOS 3 per sfidare la fascia alta Recensione Xiaomi Pad 8 Pro: potenza bruta e Hyp...
NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abbiamo provato il tris d'assi di NZXT NZXT H9 Flow RGB+, Kraken Elite 420 e F140X: abb...
La NASA ha confermato il supporto per il...
Sierra Space ha completato il test acust...
Ryzen 7 5800X3D pronto a tornare sul mer...
NASA: l'amministrazione Trump prosegue s...
L'Iran avrebbe acquistato un satellite p...
VivaTech compie dieci anni e raddoppia p...
Le vendite di CPU si sono ridotte di 25 ...
Starship: SpaceX ha completato lo static...
Huawei FusionSolar Roadshow 2026: l'inno...
Nuovo trailer per Street Fighter: un fil...
Sovranità sui dati: arriva la pri...
Schede video NVIDIA e AMD di nuovo su Ma...
Robot aspirapolvere, TV OLED, iPhone 17 ...
EUREKA J15 Pro Ultra super interessante ...
Intel porta l'AI nei notebook entry-leve...
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: 02:25.


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