2014-12-01 9 views
23

mam ten printf oświadczenie na końcu mojego programu:Pierwsze dziwny znak procent na wyjście printf w terminalu z C

printf("%d", total_candies); 

total_candies stanowi int, a ja się spodziewać wszystko działało poprawnie, wraz z faktyczna liczba, na końcu dostaję dziwny znak procentu. enter image description here

Czy ktoś może mi powiedzieć, dlaczego tak się dzieje?

+3

Czy to może być Twoja zachęta do konsoli? Spróbuj dodać nowy wiersz do danych wyjściowych: 'printf ("% d \ n ", total_candies);' –

+4

Proszę zaktualizować swoje pytanie, aby wyświetlić pełny program, który wykazuje problem. Skąd wiesz, że ten dziwny procentowy znak drukowany jest przez to konkretne stwierdzenie? Czy może to być Twoja zachęta do powłoki? –

+0

@KeithThompson Jest to jedyne polecenie printf/lub jakiejkolwiek instrukcji logowania do konsoli, które mam. – rounak

Odpowiedz

40

Kiedy (nie-zerowy) wynik z programu nie zawiera końcowego znaku nowej linii, zsh dodaje tę odwróconą barwę %, aby to zaznaczyć i przechodzi do następnej linii przed wydrukowaniem pytania; generalnie jest to wygodniejsze niż zachowanie basha, po prostu uruchamianie wiersza poleceń, w którym kończy się wynik.

+4

Dzięki nie wiedziałem o tym zachowaniu zsh. Teraz, gdy o tym myślę, jest to bardziej użyteczne niż zachowanie basha. – rounak