Problema sui files in c++

Messaggioda SalvatCpo » 29/06/2018, 09:24

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

// Scrivi un programma contenente una funzione che legge tutti i numeri inseriti, uno per riga, in un file di
// testo, li scriva su un altro file raddoppiandoli.
void funzione (char nomefile[10]);
int main () {
funzione ("f");
system ("PAUSE");
return 0;
}
void funzione (char nomefile[10]) {
FILE *z;
z = fopen (nomefile, "r");
FILE *m;
m = fopen("m.dat", "w");
int l=0, b;
do {
fscanf (z, "%d\n", l);
fprintf (m, "%d\n", 2*l);
printf ("%d", l);
} while (!feof(z));
}


Il file f contiene dei numeri in riga:
22
55
34
...

Eppure il risultato dell'esecuzione è questo:


Immagine



Immagine

Cosa c'è che non va?
SalvatCpo
Average Member
Average Member
 
Messaggio: 139 di 726
Iscritto il: 30/12/2017, 17:55

Re: Problema sui files in c++

Messaggioda Raptorista » 29/06/2018, 10:30

Compilando il tuo codice vedo questo:
Codice:
$ gcc main.c
main.c: In function 'funzione':
main.c:21:20: warning: format '%d' expects argument of type 'int *', but argument 3 has type 'int' [-Wformat=]
         fscanf (z, "%d\n", l);
                    ^

che è abbastanza per capire dov'è il problema, direi.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4941 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Problema sui files in c++

Messaggioda SalvatCpo » 29/06/2018, 10:43

Ho aggiunto & (la E commerciale) come si fa nella scanf. L'ho messa ovviamente prima di l come sembra suggerire il tuo warning, ma l'errore persiste.
SalvatCpo
Average Member
Average Member
 
Messaggio: 140 di 726
Iscritto il: 30/12/2017, 17:55

Re: Problema sui files in c++

Messaggioda Raptorista » 29/06/2018, 10:54

Con la modifica che hai scritto tu funziona correttamente sul mio computer.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4943 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Problema sui files in c++

Messaggioda SalvatCpo » 29/06/2018, 10:57

Okay, grazie per il tuo aiuto :)
SalvatCpo
Average Member
Average Member
 
Messaggio: 142 di 726
Iscritto il: 30/12/2017, 17:55

Re: Problema sui files in c++

Messaggioda Raptorista » 29/06/2018, 10:58

Quello che voglio dire è che il codice è corretto, assicurati di aver ricompilato e cancella tutti i file temporanei.
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4944 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Problema sui files in c++

Messaggioda SalvatCpo » 29/06/2018, 11:09

Si, ho fatto, ma il problema è sempre lo stesso. Non mi resta che fidarmi del tuo computer :)
SalvatCpo
Average Member
Average Member
 
Messaggio: 143 di 726
Iscritto il: 30/12/2017, 17:55

Re: Problema sui files in c++

Messaggioda Raptorista » 29/06/2018, 11:12

Che compilatore stai usando? C'è qualche messaggio in output di compilazione?
Un matematico ha scritto:... come mia nonna che vuole da anni il sistema per vincere al lotto e crede che io, in quanto matematico, sia fallito perché non glielo trovo


Immagine
Avatar utente
Raptorista
Moderatore
Moderatore
 
Messaggio: 4945 di 9616
Iscritto il: 28/09/2008, 19:58

Re: Problema sui files in c++

Messaggioda SalvatCpo » 29/06/2018, 11:28

Uso dev c++ come indicato dalla docente.
L'unico messaggio è il seguente ed è riferito alla riga dove scrivo: funzione ("f"), cioè quando invoco la funzione.
[Warning] deprecated conversion from string constant to 'char*' [-Wwrite-strings]
SalvatCpo
Average Member
Average Member
 
Messaggio: 144 di 726
Iscritto il: 30/12/2017, 17:55


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite