Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [c]caratteri speciali

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    383

    [c]caratteri speciali

    Ciao,
    Nel c viene usato spesso un carattere speciale detto newline che si scrive cosi': '\n' e anche uno detto di tabulazione: '\t'.

    Siccome attraverso il primo carattere se ne deduce che il c 'sente' la console, cioe' e' in grado di sapere dov'e' il cursore per andare a capo, vi domandavo come faccio a fare in modo che se il codice incontra la stampa di alcuni caratteri nella printf e la digitazione di questi superino la fine della linea, il programma prima di stamparli vada a capo. Non e' impossibile ma non so come si fa'.
    Qual'e' la procedura e la sintassi esatta?

    In piu' mi serviva un carattere che essendo il cursore in una certa posizione,tornasse al'inizio della riga corrente.

    Infine mi seviva un carattere newline o di tabulazione verticale all'incontrario, che cioe' che spostasse il cursore di una riga sopra, cioe' di quella precedente.

    Vi ringrazio per tutte le risposte che vorrete darmi.

  2. #2

    Re: [c]caratteri speciali

    Originariamente inviato da cristianc
    Ciao,
    Nel c viene usato spesso un carattere speciale detto newline che si scrive cosi': '\n' e anche uno detto di tabulazione: '\t'.

    Siccome attraverso il primo carattere se ne deduce che il c 'sente' la console, cioe' e' in grado di sapere dov'e' il cursore per andare a capo,
    No, il C si limita a passare il carattere in questione allo stream sottostante stdout, che solitamente è gestito dal sistema operativo, il quale decide autonomamente cosa fare dei caratteri (ad esempio se stdout corrisponde ad una console la parte del sistema operativo che si occupa della console si occuperà di effettuare un ritorno a capo, se stdout è reindirizzato ad un file il carattere \n verrà semplicemente scritto nel file).
    Le operazioni "di fino" sulla console non sono previste esplicitamente dal C perché esso considera stdout uno stream di output, e sugli stream sono consentite solo determinate operazioni che più o meno qualunque periferica di output (terminale virtuale, terminale fisico, file, stampante) può eseguire. Per lavorare con precisione sulla console quindi ti devi affidare alle API specifiche che il tuo sistema operativo ti mette a disposizione, eventualmente appoggiandoti a librerie multipiattaforma come le ncurses.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    383
    replico solo per specificare che non mi servono le ncurses perche' non mi devo spostare con il cursore nella console a tempo di esecuzione(per esempio attraverso i tasti freccia), bensi' gli devo far fare le operazioni che ho elencato assolutamente analoghe alle stesse di \n e \t, che penso siano dei caratteri ASCII.
    Ci sono degli altri caratteri ascii che consentano allo stesso modo di fare quest'altre operazioni?
    Lo ripeto perche' e' vero che \n viene passato allo stdout ma comunque e' un carattere usato nel c per interagire con la console(infatti va a capo a prescindere dalla posizione in cui si trova).

    grazie per la risposta comunque.

  4. #4
    L'unico altro carattere di controllo che viene gestito correttamente dalla maggior parte dei dispositivi è il backspace ('\b'), che sposta la posizione di inserimento dei caratteri indietro di un carattere.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.