[C]EOF
ciao
come faccio ha dare valore a una variabile char end of file 'EOF' ?
mi serve per passare un valore vuoto .
in caso di caratteri non trovati .
mi potete aiutare ?
grazie.
come faccio ha dare valore a una variabile char end of file 'EOF' ?
#include<stdio.h> #define MAX_SIZE 30 main() { char parola[MAX_SIZE]; parola[0] == 'EOF'; printf("prova >%s<\n", parola); }
mi serve per passare un valore vuoto .
in caso di caratteri non trovati .
mi potete aiutare ?
grazie.
Risposte
Per dare un valore nullo ad una stringa si usa '\0' che equivale ad un NULL terminator.
Dai anche valore al tuo italiano però ;P
Dai anche valore al tuo italiano però ;P
#include
#define MAX_SIZE 60
main()
{
char parola[MAX_SIZE];
parola[0] == '\0';
printf("prova >%s<\n", parola);
}
il programmino di esempio mi funziona corettamente ! adesso .
mi chiedevo se nello stesso modo posso stampare a video i caratteri ascii
sostituendo il numero '\0' del 'null' ?
grazie ancora
#define MAX_SIZE 60
main()
{
char parola[MAX_SIZE];
parola[0] == '\0';
printf("prova >%s<\n", parola);
}
il programmino di esempio mi funziona corettamente ! adesso .
mi chiedevo se nello stesso modo posso stampare a video i caratteri ascii
sostituendo il numero '\0' del 'null' ?
grazie ancora
Non ho ben capito cosa intendi fare... Anzicché non stampare niente (come dovrebbe fare un print %s con '\0' come variabile stringa), far scrivere null?
PS: se scrivi parola[0]=='\0' non stai facendo un assegnamento ma un controllo, può dare a quel rigo 1 oppure 0, il che verrà completamente ignorato dal programma in runtime... la versione giusta è con un solo =
PS: se scrivi parola[0]=='\0' non stai facendo un assegnamento ma un controllo, può dare a quel rigo 1 oppure 0, il che verrà completamente ignorato dal programma in runtime... la versione giusta è con un solo =
mi piacerebbe visualizzare a schermo i caratteri ASCII .
magari solo quelli che si possono riprodurre a schermo ,
peche alcuni sono per gli sterm .
tipo quelli dal 33 il poi .
0 NULL
1 START OF HEADING
2 START OF TEXT
3 END OF TEXT
4 END OF TRANSMISSION
5 ENQUIRY
6 ACKNOWLEDGE
7 BELL (Beep)
8 BACKSPACE
9 HORIZONTAL TAB
10 LINE FEED
11 VERTICAL TAB
12 FORM FEED
13 CARRIAGE RETURN
14 SHIFT OUT
15 SHIFT IN
16 DATA LINK ESCAPE
17 DEVICE CONTROL 1 (XON)
18 DEVICE CONTROL 2
19 DEVICE CONTROL 3 (XOFF)
20 DEVICE CONTROL 4
21 NEGATIVE ACKNOWLEDGE
22 SYNCHRONOUS IDLE
! 33 EXCLAMATION MARK
" 34 QUOTATION MARK
# 35
$ 36
% 37
& 38
' 39
( 40
) 41
ecc. ecc.
magari solo quelli che si possono riprodurre a schermo ,
peche alcuni sono per gli sterm .
tipo quelli dal 33 il poi .
0 NULL
1 START OF HEADING
2 START OF TEXT
3 END OF TEXT
4 END OF TRANSMISSION
5 ENQUIRY
6 ACKNOWLEDGE
7 BELL (Beep)
8 BACKSPACE
9 HORIZONTAL TAB
10 LINE FEED
11 VERTICAL TAB
12 FORM FEED
13 CARRIAGE RETURN
14 SHIFT OUT
15 SHIFT IN
16 DATA LINK ESCAPE
17 DEVICE CONTROL 1 (XON)
18 DEVICE CONTROL 2
19 DEVICE CONTROL 3 (XOFF)
20 DEVICE CONTROL 4
21 NEGATIVE ACKNOWLEDGE
22 SYNCHRONOUS IDLE
! 33 EXCLAMATION MARK
" 34 QUOTATION MARK
# 35
$ 36
% 37
& 38
' 39
( 40
) 41
ecc. ecc.
#include<stdio.h> #define MAX_SIZE 60 main() { char parola[MAX_SIZE]; parola[0] == '\0'; printf("prova >%s<\n", parola); }
ok
= assegnamento
== controllo
Utilizza %c per visualizzare un singolo carattere e non %s. Nota che lo standard C non garantisce che il tuo computer stia effettivamente utilizzando la codifica ASCII.
ma quindi tu vorresti "tradurre" una stringa di caratteri in ascii?
mi chiedevo perche non si usano piu i caratteri ascii .
se si puo in qualche modo utilizzarli ancora .
e mi piacerebbe avere la tabella e il nome della tabella corrente dei caratteri che usa ubuntu
ciao grazie
se si puo in qualche modo utilizzarli ancora .
e mi piacerebbe avere la tabella e il nome della tabella corrente dei caratteri che usa ubuntu
ciao grazie
I caratteri ASCII sono troppi pochi per poter essere usati in tutto il mondo. Non è neanche sufficiente per tutte le maggiori lingue europee. Su ubuntu non so cosa si utilizzi. Credo UTF8 o forse una codifica unicode a 16bit. Nota che non esiste più la corrispondenza 1byte = 1 carattere...
allora... su ubuntu non so se si usa il codice ascii... comunque la tabella è qui
http://www.oppo.it/tabelle/tabella_ascii.htm
http://www.oppo.it/tabelle/tabella_ascii.htm
"ZaC":
Per dare un valore nullo ad una stringa si usa '\0' che equivale ad un NULL terminator.
Dai anche valore al tuo italiano però ;P
char parola[0] = '\0';
ma in pratica se io sostituisco lo 0 con un numero
che risultato avrà la mia variabile stringa ??
char parola[0] = '\19';
prova... comunque se vuoi stampare il carattere 19 allora
parola[0]=19; parola[1]='\0';
\0 è il caratte NULL o 0
non puoi mettere \32 o \19 non ha senso
non mi ricordo come si chiamano ma hanno lo stesso valore di \n \t
puoi fare semplicemente char c = 67;....
EOF
è una costante definita con il comando al precompilatore
#define EOF -1
puoi fare una prova con printf("%d", EOF);
se vuoi stampare "per ogni numero il carattere corrispondente"
puoi fare con un ciclo for, ti butto giu 2 righe
non puoi mettere \32 o \19 non ha senso
non mi ricordo come si chiamano ma hanno lo stesso valore di \n \t
puoi fare semplicemente char c = 67;....
EOF
è una costante definita con il comando al precompilatore
#define EOF -1
puoi fare una prova con printf("%d", EOF);
se vuoi stampare "per ogni numero il carattere corrispondente"
puoi fare con un ciclo for, ti butto giu 2 righe
#include <stdio.h> int main(){ int c; for (c='a'; c != 'z'; c++) printg("%c = %d\n", c, c); }