Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    1

    [C] Aprire file di testo in lettura da programma scritto con XCode

    Sono una studentessa universitaria e ho riscontrato il seguente problema nel programmare in c con un mac.
    Ho scritto un programma che a un certo punto richiedeva di leggere un file (.txt) pre esistente che ho inserito nella stessa directory del progetto Xcode. Il problema è che, in fase di esecuzione, non legge nulla e termina il programma, come faccio?
    Questo è il programma fino a dove ho riscontrato il problema:

    #include <stdio.h>

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


    typedef enum {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}days;
    typedefstruct {
    int nomcent;
    float temp, umidita, polveri;
    int giorno;
    int mese;
    int anno;
    days day;
    }centralina;


    centralina *dati[10];


    int leggidati()
    { centralina *p;
    FILE *f;
    char nomgiorno[10];
    int i=0;

    f=fopen("Prova 3- Dati.txt", "r");
    if (f==NULL)
    {
    printf("Errore in apertura del file dati\n");
    return 0;
    }

    while (!feof(f))
    {

    p=malloc(sizeof(centralina));
    fscanf(f, "%d %f %f %f %d %d %d %s", &(p->nomcent), &(p->temp), &(p->umidita), &(p->polveri), &(p->giorno), &(p->mese), &(p->anno), nomgiorno);

    i=p->nomcent-1;

    if (dati[i]==NULL)
    {if ( strcmp(nomgiorno,"Sunday")==0)
    p->day=Sunday;

    else
    if (strcmp(nomgiorno, "Monday")==0)
    p->day=Monday;
    else
    if (strcmp(nomgiorno, "Tuesday")==0)
    p->day=Tuesday;
    else
    if (strcmp(nomgiorno, "Wednesday")==0)
    p->day=Wednesday;
    else
    if (strcmp(nomgiorno, "Thursday")==0)
    p->day=Thursday;
    else
    if (strcmp(nomgiorno, "Friday")==0)
    p->day=Friday;
    else
    if (strcmp(nomgiorno, "Saturday")==0)
    p->day=Saturday;
    else printf("Hai inserito il dato sbagliato\n");

    dati [i]=p;}

    else printf("Errore: %d %f %f %f %d %d %d %s ", (p->nomcent), (p->temp), (p->umidita), (p->polveri), (p->giorno), (p->mese), (p->anno), nomgiorno);

    }
    fclose(f);
    return1;
    }


    int main(int argc, const char** argv)
    {
    int i;
    FILE *o;
    for (i=0; i<10; i++)
    dati[i]=NULL;

    if (leggidati()==0)
    return 0;

    o=fopen("RiggioClaudia10573137.txt", "w");

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ciao Claudia,

    hai un messaggio d'errore in esecuzione?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2017
    Messaggi
    1
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ciao Claudia,

    hai un messaggio d'errore in esecuzione?

    No, mi stampa solo "Errore in apertura del file dati" e poi termina il programma

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Quote Originariamente inviata da claus4 Visualizza il messaggio
    No, mi stampa solo "Errore in apertura del file dati" e poi termina il programma
    Evidentemente hai sbagliato cartella perché non lo trova.

    Ti consiglio di aprirlo in "w" per capire dove viene creato. In questo modo sai dove deve stare.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Tag per questa discussione

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.