Lettura da un file in c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
// Scrivi un programma che legge e visualizza un numero da un file
int main() {
int x;
FILE *h;
h = fopen ("h", "r");
fscanf (h, "%d", &x);
printf ("%d\n", x);
system ("PAUSE");
return 0;
}
Nella stessa cartella in cui si trova il file.cpp c'è un documento di testo chiamato h e contenente un numero
in prima riga, ma nonostante ciò, quando compilo, visualizzo sempre 0. Perché? Grazie
Risposte
Ok, grazie per la risposta. Il codice postato giù fa una lettura "multipla" e contemporaneamente una scrittura su un altro file. Quando eseguo, mi crea m ma me lo riempie di infiniti 0, nonostante in f ci siano (limitati) numeri (diversi da 0).
Il motivo per cui il programma non funziona è lo stesso per cui non funziona quello postato sopra oppure sbaglio qualcosa con la eof?
Il motivo per cui il programma non funziona è lo stesso per cui non funziona quello postato sopra oppure sbaglio qualcosa con la eof?
#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, e li scrive 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);
b=2*l;
fprintf (m, "%d\n", b);
printf ("%d", l);
} while (!feof(z));
}
Poi c'è quest'altro con la fseek e anche questo stampa solo zero.
Ma, a parte questo, è corretto? Cioè, se voglio posizionarmi e leggere da quella posizione, è così che si fa, cioè prima fseek e poi fscanf?
E se non mi posiziono, vuol dire che automaticamente il puntatore si posiziona all'inizio del file?
#include
#include
#include
#include
Ma, a parte questo, è corretto? Cioè, se voglio posizionarmi e leggere da quella posizione, è così che si fa, cioè prima fseek e poi fscanf?
E se non mi posiziono, vuol dire che automaticamente il puntatore si posiziona all'inizio del file?
#include
#include
#include
#include
// Scrivi un programma che legge e visualizza un numero da un file in una certa posizione
int main() {
int x;
FILE *h;
h = fopen ("h", "r");
fseek (h, 2, SEEK_SET);
fscanf (h, "%d", &x);
printf ("%d\n", x);
system ("PAUSE");
return 0;
}
Io sto preparando un esame (facoltà di fisica). La mia prof non tollera nemmeno se scrivo i=i+1 anziché i++.
Return 0 e System Pause lei ce li fa scrivere sempre.
Non so a cosa servano e non mi serve saperlo.
Quindi cerco di fare le cose seguendo le sue indicazioni.
Quello che mi preme sapere è se il codice con la eof e poi quello con la fseek sono concettualmente giusti e se, quando non si scrive la fseek, il posizionamento avviene automaticamente alla prima posizione.
Return 0 e System Pause lei ce li fa scrivere sempre.
Non so a cosa servano e non mi serve saperlo.
Quindi cerco di fare le cose seguendo le sue indicazioni.
Quello che mi preme sapere è se il codice con la eof e poi quello con la fseek sono concettualmente giusti e se, quando non si scrive la fseek, il posizionamento avviene automaticamente alla prima posizione.