Visualizzazione dei risultati da 1 a 10 su 24

Discussione: [C] logica di fgets()

Visualizzazione discussione

  1. #3
    Utente di HTML.it L'avatar di filips
    Registrato dal
    Sep 2011
    residenza
    Seconda stella a destra (questo e' il cammino)
    Messaggi
    155
    Ti ringrazio per questa bella risposta particolareggiata.

    Quote Originariamente inviata da MItaly Visualizza il messaggio
    La fgets:
    - legge tutti i caratteri dati in input fino al newline, compreso il newline a meno che il buffer che le hai passato non sia troppo corto, nel qual caso arriva a riempire fino al penultimo carattere del buffer (l'ultimo viene usato per il terminatore NUL);

    Non ho capito bene: intendi che il buffer passato sia coerente col size e tuttavia più corto dello stream?



    Quindi,
    codice:
    nome[strlen(nome)-1] = 0;
    gestisce solo il caso "banale" - ovvero, c'è stato tutto e lo stream non è terminato

    Temo che non sia esattamente questa l'intenzione dell'estensore, colpa mia per aver tagliato la nota all'esempio (ma era solo la prima parte rilevante per il mio dubbio):

    Il comando dato dopo fgets() è necessario perché tale funzione legge anche ilcarattere '\n', mettendolo alla fine della stringa. Se non si vuole terminare la stringa
    con un '\n' si piazza il carattere terminatore '\0' al suo posto (ovvero una posizione
    prima della fine della stringa).

    E comunque questa parte non mi sembrava/sembra molto chiara: il fatto che \n sia messo alla fine della stringa non sembra reggere col fatto che \0 lo rimpiazzi una posizione prima della fine della stessa. Per il resto mi sembra che volesse dire qualcosa tipo non terminare la stringa con '...\n\0', cioè se la si vuole terminare con esattamente l'ultimo carattere di input visualizzato sullo schermo.
    Ultima modifica di filips; 22-09-2016 a 02:15
    Per fare un tavolo ci vuole un fiore.

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