2014-12-01 8 views
23

ho questo printf dichiarazione alla fine del mio programma:Ottenere un segno strano per cento in uscita printf nel terminale con C

printf("%d", total_candies); 

total_candies è un int, e mentre mi aspetto che tutto funzioni correttamente, insieme a il numero effettivo, sto ottenendo un segno di percentuale strano alla fine. enter image description here

Qualcuno può dirmi perché questo sta accadendo?

+3

È il prompt della console, forse? Prova ad aggiungere una nuova riga al tuo output: 'printf ("% d \ n ", total_candies);' –

+4

Aggiorna la tua domanda per mostrare un programma completo che presenta il problema. Come fai a sapere che il carattere di percentuale strana viene stampato da quella specifica affermazione? Potrebbe essere il prompt della shell? –

+0

@KeithThompson Questa è l'unica dichiarazione di registrazione della console che ho. – rounak

risposta

40

Quando un output (non null) da un programma non include una nuova riga finale, zsh aggiunge quel colore invertito % per indicarlo e passa alla riga successiva prima di stampare il prompt; è generalmente più conveniente del comportamento di bash, basta avviare il prompt dei comandi dove finisce l'output.

+4

Grazie non sapevo questo comportamento di zsh. Ora che ci penso, è davvero più utile del comportamento di bash. – rounak