Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Lettura da file

  1. #1

    Lettura da file

    Salve, nel programma che sto facendo devo poter leggere dei dati scritti su file.
    Questi dati sono numeri interi e io devo poterli leggere a coppie, lavorarci sopra e poi leggere una nuova coppia.
    Una volta aperto il file io riesco a leggere la prima coppia, poi però rimango a ciclare sempre sulla stessa... come posso fare per andare avanti con gli altri numeri?
    Ah, il file non lo chiudo mai.
    Grazie.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Beh ... se non fai vedere il codice che non funziona, come si fa a dirti dove e' il problema?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    205
    e se contassi l'intero numero di caratteri sulla riga e poi dividi per 2?
    in questo modo ottieni il numero delle coppie sulle quali lavorare, da questo punto basta che dopo aver lavorato la prima coppia vai a posizionarti nella posizione esatta in cui ti serve, quindi la coppia successiva...
    a parole io farei così
    posta un pò di codice...magari si riesce a venirti incontro meglio...

    ciao

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Originariamente inviato da giano118
    e se contassi l'intero numero di caratteri sulla riga e poi dividi per 2?
    in questo modo ottieni il numero delle coppie sulle quali lavorare
    Cioè, secondo te, nel file qui sotto, ci sono 5 coppie (10 caratteri diviso 2)?
    codice:
    1234  5678
    No, eh?


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    In poche parole il codice che sto scrivendo somiglia a questo:
    nel file "input.txt" ho scritto: 2 6 7 4 3 9 5 7 6 4 1 6
    che vanno considerati nel modo: (2,6) (7,4).... quindi ho scritto 6 coppie di numeri.
    Nel programma ho messo:

    FILE *ingresso;
    ingresso = fopen("Input.txt","r");
    if((ingresso = fopen("Input.txt","r")) == NULL)
    printf("Non apre il file");
    fscanf(ingresso,"%d %d",&i,&j); //i,j sono delle variabili intere
    lavora_su_nodi(i,j); //funzione per utilizzare i valori

    visto che volevo richiamare la funzione lavora_su_nodi per tutte le coppie all'interno del file, avevo pensato di inserire all'interno di "input.txt" il numero -1 e mettere la condizione
    while(i != -1)... ma alla fine mi considera anche quel numero come facente parte di una coppia.
    Come posso capire quando sono finiti i numeri? Visto che EOF non lo riconosce come comando valido?
    Grazie ancora.

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non capisco perche' fai la open due volte nel tuo codice ... comunque questo e' un esempio

    codice:
    int i, j;
    
    FILE *ingresso;
    
    ingresso = fopen("c:\\input.txt","r"); 
    while(fscanf(ingresso, "%d %d", &i, &j) == 2) 
        printf("%d %d\n", i,j);
    Uso solo la printf per visualizzare i dati letti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.