Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c] file

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92

    [c] file

    Ciao Raga vi posto subito il prog. x nn perderci in chiacchere:


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

    int main(void)
    {
    char s[100];
    FILE *f;
    f = fopen("DvD.txt", "r");
    while ((fscanf(f, "%s", &s)) != EOF) {
    printf("%s\n", s);
    }
    fclose(f);
    system("pause");
    return 0;
    }
    Per provare il prog, ho creato un file "dvd.txt", in cui ho inserito 3 titoli..
    Come output finale mi da si i titoli, ma scritti così:
    La
    casa
    La
    banda
    del
    gobbo
    Hulk

    Ho reso l'idea? Xkè va a capo?


    tnx all




    Peppe

  2. #2
    Se nel file le stringhe sono messe in questo modo...
    codice:
    Stringa1
    Stringa2
    Stringa3
    usa al posto di fscanf() fgets()...

    codice:
    fgets (buff, DIM_BUFF, fp);
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  3. #3

    Re: [c] file

    Originariamente inviato da Peppewt
    Ciao Raga vi posto subito il prog. x nn perderci in chiacchere:

    Ho reso l'idea? Xkè va a capo?


    tnx all




    Peppe
    quando posti il codice scrivilo tra il tag codice cioè tra [ code] xyxyx [ /code] (senza spazi tra la [ e code naturalmente ) cosi' risulta molto + leggibile

    cmq per tornare al tuo problema prova cosi': (aggiundo anche altre migliore al codice )
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(){
    char s[100];
    FILE *f;
    
    if( (f = fopen("DvD.txt", "r")) == NULL ){
        printf("Errore nell'apertura del file\n");
        return -1;
        }
    
    int tmp=0;    
    while (tmp != 0){
    gets(s);
    fputs(f,s);
    printf("\nHAI immesso nel file : %s ");
    printf("\n\nPer immettere un altro titolo digita 0 altrimenti 1\n"); scanf("%d",&tmp);
    }
    
    fclose(f);
    system("pause");
    return 0;
    }
    ps scrivi un titolo alla volta,dai invio e passi al successivo

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  4. #4
    Originariamente inviato da nightfall
    Se nel file le stringhe sono messe in questo modo...
    codice:
    Stringa1
    Stringa2
    Stringa3
    usa al posto di fscanf() fgets()...

    codice:
    fgets (buff, DIM_BUFF, fp);
    lui le vorrebbe cosi' come hai postato tu...ogni stringa sotto l'altra ma sicuramente gli si "spezzano" tutte perchè fscanf(come scanf del resto)legge una stringa fino allo spazio
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  5. #5
    Comunque va a capo perche' fscanf() e scanf() tagliano le stringhe quando ci sono gli spazi...

    Prova questo:
    codice:
    int main() {
        char str[20];
        printf ("Nome e Cognome : ");
        scanf("%s", str);
       
        printf (str);
    }
    La Stessa cosa vale per la fscanf()

    cmq per quanto riguarda il tuo programma...
    la fscanf() va' a prendere parola per parola e quindi stampa una parola e va a capo senza considerare la frase...

    Battuto sul Tempo...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  6. #6
    Originariamente inviato da nightfall
    ..Battuto sul Tempo...
    non importa :gren: :sexpulp:

    non è una gara

    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    code:--------------------------------------------------------------------------------
    #include <stdio.h>
    #include <stdlib.h>

    int main(){
    char s[100];
    FILE *f;

    if( (f = fopen("DvD.txt", "r")) == NULL ){
    printf("Errore nell'apertura del file\n");
    return -1;
    }

    int tmp=0;
    while (tmp != 0){
    gets(s);
    fputs(f,s);
    printf("\nHAI immesso nel file : %s ");
    printf("\n\nPer immettere un altro titolo digita 0 altrimenti 1\n"); scanf("%d",&tmp);
    }

    fclose(f);
    system("pause");
    return 0;
    }
    --------------------------------------------------------------------------------
    Scusa Andrea ma il prog ke hai postato tu mi aggiunge delle stringhe al file vero?
    Inoltre ho alcune domande: come mia hai messo
    return -1
    fputs(f,s);
    Non dovrebbe essere fputs(s,f);?

    Cmq. grazie ad entrambi....

  8. #8
    Originariamente inviato da Peppewt
    Scusa Andrea ma il prog ke hai postato tu mi aggiunge delle stringhe al file vero?
    Inoltre ho alcune domande: come mia hai messo



    Non dovrebbe essere fputs(s,f);?

    sisi errore di battitura ........prima và s,cioè la stringa,e dopo lo stream dove deve finire quindi ,in questo caso,f cioè il file.

    Per l'altra domanda ho messo -1 come ritorno se l'apertura del file dovesse non riuscire....è consuetudine far ritornare 0 ad una funzione quando svolge il suo compito correttamente,mentre -1 (o 1 ad es)quando c'è qualche errore

    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2004
    Messaggi
    92
    Un altra cosa come faccio ad aprire un file ke si strova in una cartella o x esempio su desktop?

  10. #10
    Originariamente inviato da Peppewt
    Un altra cosa come faccio ad aprire un file ke si strova in una cartella o x esempio su desktop?
    cosi':
    codice:
    //...
    
    FILE *f;
    f = fopen("C:\\cartella\\prova.txt","r");
    
    //...
    ciao
    Vediamo..sogni che diventano professione...passioni che diventano vita... Free as in Freedom...

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.