carattere di controllo '\b'
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- ulisse89
- Packager

- Messaggi: 643
- Iscritto il: sab 17 gen 2009, 12:53
- Nome Cognome: Riccardo
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: Xfce
- Località: Bologna
carattere di controllo '\b'
Ciao tutti. Scusate per la domanda che magari è stupida ma a cui non trovo soluzione. Sto facendo un piccolo programma in c compilando con gcc. Ho bisogno a un certo punto di cancellare un carattere da file e al suo posto scriverne un altro per cui ho usato la funzione fprintf e per cancellare, il carattere di controllo '\b'. Però sul file non viene cancellato niente anzi mi viene accodato un carattere strano di cui non conosco il nome (quello a forma di rettangolo). Sembra che il carattere di controllo '\b' non funzioni a dovere. Per controllare ho provato con una printf a usarlo per cancellare caratteri da video ma non funziona nemmeno lì.
Per cui la mia domanda è se qualcuno sa il motivo e semmai come risolverlo.
Grazie.
ps: spero di non esseremi spiegato male, anche se credo sia così.
Per cui la mia domanda è se qualcuno sa il motivo e semmai come risolverlo.
Grazie.
ps: spero di non esseremi spiegato male, anche se credo sia così.
-
Mario Vanoni
- Iper Master

- Messaggi: 3174
- Iscritto il: lun 3 set 2007, 21:20
- Nome Cognome: Mario Vanoni
- Slackware: 12.2
- Kernel: 3.0.4 statico
- Desktop: fluxbox/seamonkey
- Località: Cuasso al Monte (VA)
Re: carattere di controllo '\b'
Soluzione sbagliata per il tuo problema, prova:ulisse89 ha scritto:Ciao tutti. Scusate per la domanda che magari è stupida ma a cui non trovo soluzione. Sto facendo un piccolo programma in c compilando con gcc. Ho bisogno a un certo punto di cancellare un carattere da file e al suo posto scriverne un altro per cui ho usato la funzione fprintf e per cancellare, il carattere di controllo '\b'. Però sul file non viene cancellato niente anzi mi viene accodato un carattere strano di cui non conosco il nome (quello a forma di rettangolo). Sembra che il carattere di controllo '\b' non funzioni a dovere. Per controllare ho provato con una printf a usarlo per cancellare caratteri da video ma non funziona nemmeno lì.
Per cui la mia domanda è se qualcuno sa il motivo e semmai come risolverlo.
Grazie.
ps: spero di non esseremi spiegato male, anche se credo sia così.
echo -e 'i\b_' | cat -v
echo -e 'i\b_' | lp
ti stampa una i sottolineata.
- ulisse89
- Packager

- Messaggi: 643
- Iscritto il: sab 17 gen 2009, 12:53
- Nome Cognome: Riccardo
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: Xfce
- Località: Bologna
Re: carattere di controllo '\b'
Innanzitutto grazie della risposta. Però 1)non capisco cosa vuol dire soluzione sbagliata al mio problema; 2) ho provato il primo comando stampa "i^H_" mentre se tolgo il cat -v allora mi stampa solo il trattino basso. Il secondo comando mi da "error scheduler not responding".
- nuitari
- Linux 3.x

- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: carattere di controllo '\b'
Non puoi usare il carattere di cancellazione per eliminare il carattere precedente in un file, i file non sono strutture dati così semplici. Se scrivi un carattere di cancellazione in un file, viene scritto il codice corrispondente, non è che si sposta il puntatore all'indietro.
Hai due possibilità principali:
1) caricare l'intero file in un buffer di memoria, alterarlo comodamente quindi sovrascrivere completamente l'originale (indicato con file di piccole dimensioni).
2) posizionarti sul carattere che vuoi modificare e, spostando continuamente il puntatore, sovrascrivere un carattere alla volta il contenuto del file da quel punto in poi, troncandolo alla fine.
Hai due possibilità principali:
1) caricare l'intero file in un buffer di memoria, alterarlo comodamente quindi sovrascrivere completamente l'originale (indicato con file di piccole dimensioni).
2) posizionarti sul carattere che vuoi modificare e, spostando continuamente il puntatore, sovrascrivere un carattere alla volta il contenuto del file da quel punto in poi, troncandolo alla fine.
- ulisse89
- Packager

- Messaggi: 643
- Iscritto il: sab 17 gen 2009, 12:53
- Nome Cognome: Riccardo
- Slackware: 13.0
- Kernel: 2.6.29.6
- Desktop: Xfce
- Località: Bologna
Re: carattere di controllo '\b'
In effetti nel primo modo ce la faccio, l'unica cosa è che mi tocca riscrivere tutto, più la variabile che devo cambiare. Comunque il problema è risolto quindi almeno posso andare avanti col programma. Grazie del consiglio.
Ciao.
Ciao.
- nuitari
- Linux 3.x

- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: carattere di controllo '\b'
figurati, è un piacere ^^