PDA

Visualizza la versione completa : [c]caratteri ascii


risico
05-02-2008, 14:53
ciao
vorrei sapere come si fa a stampare i caratteri speciali utilizzando il codice ascii...
grazie :ciauz:

risico
05-02-2008, 14:56
sorry
vorrei dire:
come si fa a far comparire piu volte lo stesso simbolo asci??
faccio un esempio:


...
printf(" %c %c %c %c %c ",(char)205,(char)205,(char)205,(char)205,(char)205 );
...

come potrei fare altrimenti?

oregon
05-02-2008, 15:21
Usa un ciclo for ...

pallinopinco
05-02-2008, 15:29
#include <stdio.h>

int main(void){
int i;
for (i = 0; i < 80; ++i)
printf("%c", (char) 205);
return 0;
}

oregon
05-02-2008, 15:32
Anche

for (i = 0; i < 80; ++i) putchar(205);

pallinopinco
05-02-2008, 16:30
for (i = 0; i < 80; ++i) putchar(205);

Oregon ha ragione, però quasi tutti i compilatori convertono automaticamente una chiamata printf("A") in putchar("A").

Esempio GCC:



#include <stdio.h>

int main(void){
int i;
for (i = 0; i < 80; ++i)
printf("%c",(char) 205);
return 0;
}




.file "test.c"
.intel_syntax
.def ___main; .scl 2; .type 32; .endef
.text
.p2align 4,,15
.globl _main
.def _main; .scl 2; .type 32; .endef
_main:
lea ecx, [esp+4]
and esp, -16
push DWORD PTR [ecx-4]
push ebp
mov ebp, esp
push ebx
mov ebx, 1
push ecx
sub esp, 16
call ___main
mov DWORD PTR [esp], -51
call _putchar
.p2align 4,,7
L2:
mov DWORD PTR [esp], -51
add ebx, 1
call _putchar
cmp ebx, 80
jne L2
add esp, 16
xor eax, eax
pop ecx
pop ebx
pop ebp
lea esp, [ecx-4]
ret
.def _putchar; .scl 2; .type 32; .endef

XWolverineX
05-02-2008, 18:56
perchè?

pallinopinco
05-02-2008, 19:05
perchè?


Perché putchar è più performante... Così come se non bisogna formattare stringhe è preferibile puts a printf.

Loading