Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [C] Aggiunta di una parola in testa a un file

    Ciao a tutti,

    secondo voi e possibile aggiungere una parola in testa a un file di testo? mi spiego meglio con un esempio

    File di testo originario:

    Ciao io sono
    il file di testo

    File di testo modificato:

    Ehila
    Ciao io sono
    il file di testo

    io ho provato ad aprire il file di testo in modalita "r+" e stampando \n per poi fare un rewind del puntatore, ma la stampa del \n mi "mangia" le lettere 'C' e 'i' della parola "Ciao".

    Dite la vostra

    Saluti!

  2. #2
    Non si possono inserire caratteri in mezzo ad un file di testo senza sostituire quelli che ci sono già. Devi riscrivere l'intero file.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    25
    Prova così:
    codice:
    char *p="Ciao";
    char s[MAX];
    FILE *fp;
    fp = fopen("file.txt", "r+");
    fgets(s, MAX, fp);
    fprintf(fp, "%s\n%s", p, s);
    fclose(fp);

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    25
    Meglio:

    char s[MAX];
    char *stringaInTesta = "Quello che vuoi";

    while (fgets(riga, MAX, fp)!=NULL)
    strcat(s, riga);

    e poi

    fprintf(fp, "%s\n%s", stringaInTesta, s);

  5. #5
    ti devi riscrivere tutto il seguito del file dal punto in cui vuoi inserire la nuova riga.
    nel tuo caso te lo devi riscrivere tutto
    Open your mind. Use Open Source.

  6. #6
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,563
    Originariamente inviato da murder eyes
    ti devi riscrivere tutto il seguito del file dal punto in cui vuoi inserire la nuova riga.
    nel tuo caso te lo devi riscrivere tutto
    E' vero.
    Ma se scrivi una lunghezza fissa di byte continuamente, puoi modificare anche nel mezzo, ma il file sarà "illegibile" nella sua versione txt.
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  7. #7
    Scusate, non vorrei andare OT, ma nella scrittura di un file ci atteniamo a un file pointer, quindi, credo si possa fare un ragionamento inverso: far crescere il file verso il basso, del resto si scrive su aree di memoria, o sbaglio ?
    Quindi, se possibile in termini di spazio, si può spostare il riferimento al file, del numero di byte necessari ?
    Experience is what you get when you don’t get what you want

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 © 2025 vBulletin Solutions, Inc. All rights reserved.