Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    104

    creazione di un file

    salve,ho bisogno di creare un file(linguaggio C).
    Ho provato a scrivere il codice giusto ma non mi crea il file.....
    il mio codice è:

    int main()
    {
    FILE *fp;
    int c;


    if ( ( fp = fopen( "testo", "w" ) ) == NULL )
    {
    printf( "Errore");
    return 1;
    }


    while( ( c = getchar() ) != '?' )
    fprintf( fp, "%c", c );


    fclose(fp);


    return 0;



    }
    ma non crea il file ne lo scrive,dove sbaglio??
    Come faccio a creare un file con il C e poi a copiarci dentro un documento word pad?Aiutatemi e grazie..

  2. #2
    Strano . A me funziona il tuo codice .:master: A questo punto ti domando : ma hai inserito nel tuo codice l'istruzione
    codice:
    #include <stdio.h> ?
    Per quanto riguarda la seconda domanda una trascrizione di file già è stata discussa qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    104
    il fatto è che ho un file di testo con dei dati che devono essere modificati.
    La domanda è come faccio a accedere ad i singoli valori del file?
    Mi spiego meglio:

    ho un file con 10 colonne di valori,alcuni dei quali devono essere modificati in un modo ed altri in un altro.....
    voglio sapere come faccio ad accedere ai singoli valori e a "navigare nel file".
    Grazie mille

  4. #4
    Originariamente inviato da Cap_1981
    il fatto è che ho un file di testo con dei dati che devono essere modificati.
    La domanda è come faccio a accedere ad i singoli valori del file?
    Mi spiego meglio:

    ho un file con 10 colonne di valori,alcuni dei quali devono essere modificati in un modo ed altri in un altro.....
    voglio sapere come faccio ad accedere ai singoli valori e a "navigare nel file".
    Grazie mille
    Le opzioni di apertura dei file sono in lettura, scrittura, append, o combinazioni dei tre. Sicuramente non puoi navigare in un file, cercarti una riga e modificarla senza fare altro.
    Per "navigare nel file" puoi usare la funzione fseek() (guardati come è definita, essa si muove di tot byte(caratteri) per volta) o cmq con funzioni come la fgets() la riga corrente ti avanza di una riga per volta.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    104
    ho letto il fuzionamemto di fseek(),fread() e compagnia e ho ancora un dubbio.
    il mio programma deve prendere in input un file di testo composto da tantissime righe ed ogno riga ha 10 valori separati da virgole(alcuni numeri ad una cifra altri caratteri) che io devo modificare(alcuni in un modo altri in un altro )a seconda della posizione che occupano.
    Come faccio ad accedere ad ogni singolo valore di ogni record?
    ad esempio:se ho due numeri consecutivi come faccio a leggerne solo il primo e modificarlo(con fread spostandomi con fseek (di quanti byte?)? )
    grazie mille.

  6. #6
    Originariamente inviato da Cap_1981
    ho letto il fuzionamemto di fseek(),fread() e compagnia e ho ancora un dubbio.
    il mio programma deve prendere in input un file di testo composto da tantissime righe ed ogno riga ha 10 valori separati da virgole(alcuni numeri ad una cifra altri caratteri) che io devo modificare(alcuni in un modo altri in un altro )a seconda della posizione che occupano.
    Come faccio ad accedere ad ogni singolo valore di ogni record?
    ad esempio:se ho due numeri consecutivi come faccio a leggerne solo il primo e modificarlo(con fread spostandomi con fseek (di quanti byte?)? )
    grazie mille.
    Allora ti conviene fare in altro modo.
    Ti prendi la riga da editare con una fgets() o fscanf() o la funzione che piu ti piace e la metti in una stringa.
    Siccome tutti i parametri sono separati da virgole(condizione necessaria a quanto hai detto) puoi utilizzare la funzione strtok() della libreria string.h
    Come puoi vedere da un help o un manuale la strtok() prende due argomenti: il primo è la stringa su cui effettuare la ricerca e il secondo è l'insieme di caratteri separatori(nel tuo caso ci devi mettere come secondo parametro soltanto ",").
    Al primo parametro mettici una copia della riga che hai letto dal file perchè la strtok() spezza la stringa al primo parametro a ogni occorrenza di uno dei caratteri separatori.
    La prima invocazione di strtok() la fai sulla stringa copiata e al solito il secondo argomento ",".
    Nelle successive invocazioni di strtok() che dovrebbero essere 8 o 9 devi passare come primo argomento NULL per fare in modo che continui ad operare sulla solita stringa.

    Un esempio di riga è:
    pippo,pluto,23,minni,ciccio,47,boia,de,51,paperone

    Se vuoi modificare 47 dovrai fare una prima invocazione di strtok() con la stringa, poi ne fai altre 5 passando NULL come primo parametro e la strtok() ti torna 47.

  7. #7
    Non so perchè ma mi è andato a capo, cmq la stringa era tutta su una riga

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    104
    grazie mille,non ho avuto il tempo di provare ,ti farò sapere al piu presto....

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.