Chiarimento ftell() - FILE in C

di il
8 risposte

Chiarimento ftell() - FILE in C

Salve ragazzi, vorrei un chiarimento sulla funzione ftell() che ritorna la posizione del puntatore nel file.
Non capisco il comportamento di questa funzione alla fine di una riga, in pratica aggiunge 2 posizioni, al posto di 1 che dovrebbe essere '\n' , correggetemi se sbaglio.
Tra 20 e 22 c'è il salto di riga
Allegati:
22639_fc487166fbce7b803504711b7c7b366a.png
22639_fc487166fbce7b803504711b7c7b366a.png

8 Risposte

  • Re: Chiarimento ftell() - FILE in C

    Con file di testo windows i caratteri sono 2 CR LF
  • Re: Chiarimento ftell() - FILE in C

    oregon ha scritto:


    Con file di testo windows i caratteri sono 2 CR LF
    CR LF?
    Poi perchè non viene visualizzata il carattere in posizione 21? Passa da 20 a 22..
  • Re: Chiarimento ftell() - FILE in C

    Carriage Return \r
    Line Feed \n

    Conosci il codice ASCII ?

    Non li visualizzi perché sono caratteri di controllo, non visualizzabili
  • Re: Chiarimento ftell() - FILE in C

    Per quel che ne so, ftell() "ragiona" in binario, per cui prende in considerazione tutti i byte presenti in un file. Il classico "a capo" viene gestito in modo diverso a seconda della piattaforma; ad esempio secondo i sistemi Apple dei vecchi tempi era '\r', secondo Windows è '\r\n' e secondo linux è '\n' (non sono del tutto sicuro per quel che riguarda Linux, perché non ne ho esperienza diretta).

    Dunque, a seconda di dove e come è stato scritto il file di testo, un "a capo" potrebbe essere di uno o due caratteri, e non è detta che siano sempre gli stessi. Sono le gioie della intelligentissima mancanza di uno standard univoco, assai probabilmente dovuta a guerre commerciali decise da qualche squadrone di dirigenti infoiati, guerre delle quali pagano lo scotto coloro che non c'entrano nulla (anche se son chiamati a campar fuori fior di soldoni, se no come farebbero detti dirigenti a cambiare i loro BMW ogni tre per due?).
  • Re: Chiarimento ftell() - FILE in C

    AldoBaldo ha scritto:


    Dunque, a seconda di dove e come è stato scritto il file di testo, un "a capo" potrebbe essere di uno o due caratteri, e non è detta che siano sempre gli stessi. Sono le gioie della intelligentissima mancanza di uno standard univoco, assai probabilmente dovuta a guerre commerciali decise da qualche squadrone di dirigenti infoiati, guerre delle quali pagano lo scotto coloro che non c'entrano nulla (anche se son chiamati a campar fuori fior di soldoni, se no come farebbero detti dirigenti a cambiare i loro BMW ogni tre per due?).
    Non è proprio così.
    Partiamo dalle basi.
    http://worldpowersystems.com/J/codes/index.htm
  • Re: Chiarimento ftell() - FILE in C

    Un bel pistolotto! Comincio a leggere. Grazie per la segnalazione, poi magari replico.
  • Re: Chiarimento ftell() - FILE in C

    Davvero molto interessante (mi son salvato la pagina, perché intendo ritornarci con più calma), però non vedo nessuna contraddizione con la mia impressione che dietro a certe scelte ci sia un potente fattore commerciale. Se si trattasse solo di maggiore o minore efficienza, le soluzioni meno efficienti sarebbero ormai state eliminate dalla circolazione. Così non è, visto che il classico "a capo" è tutt'ora soggetto a trattamenti tanto diversi. E, a me pare, insensatamente diversi (fatta la tara del fattore "guerra commerciale").
  • Re: Chiarimento ftell() - FILE in C

    Che dire ragazzi, grazie mille delle delucidazioni
Devi accedere o registrarti per scrivere nel forum
8 risposte