Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI
Con velocità teoriche fino a 11 Gbps, gestione tramite app intelligente e protezione avanzata dei dispositivi, Roamii BE Pro porta il Wi‑Fi 7 tri‑band nelle abitazioni più esigenti. Un sistema Wi-Fi Mesh proposto da MSI allo scopo di garantire agli utenti una rete fluida e continua capace di sostenere streaming 8K, gaming competitivo e le applicazioni moderne più esigenti in termini di banda
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-02-2005, 09: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, 10: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, 10: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, 10: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, 14: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, 15: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


Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Kyndryl rafforza il SOC di Roma e apre i...
Gli accessori auto più desiderati su Ama...
'Molti produttori falliranno': l'allarme...
Robot aspirapolvere in super offerta su ...
Voto alla ballerina, la truffa su WhatsA...
NetApp INSIGHT XTRA Milano: piattaforme ...
Ecco una bella offerta: EUREKA J15 Ultra...
32GB di RAM, 1TB di SSD, AMD Ryzen AI 7 ...
Apple testa la crittografia RCS nella be...
Unity Technologies punta sull'AI generat...
Keenadu, nuovo malware Android: Kaspersk...
MSI GeForce RTX 5090 Lightning Z a 2500 ...
Call of Duty: Warzone Mobile chiuder&agr...
Portatile tuttofare HP Ryzen 7, 16GB RAM...
LEFANT M3Max è uno dei robot pi&u...
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:27.


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