25/05/12 14:25
Deve essere
+ '0'
e il counter non deve partire da 0 e aumentare altrimenti avrai il numero scritto al contrario. Dovrà partire dalla cifra più a destra e diminuire.
Dato che converti un intero a 32 bit, potrai preparare una stringa di 32 spazi (+ il terminatore NULL) e riempire a partire da counter = 32 decrementandolo
31/05/12 17:36
ikim
l'ho riscritto un po' meglio (ancora tanto lavoro da fare)
pastebin.com/…
ma...
Program received signal SIGSEGV, Segmentation fault.
0x0000000000400cb4 in main (argc=1, argv=0x7fffffffe3d8) at decbin2.c:92
92 if ((strcmp(binarystring,"exit"
) == 0) {
Ultima modifica effettuata da ikim 31/05/12 22:04
aaa
31/05/12 18:43
E' sempre un problema di "puntatori" usati male ...
Ti ricordo che non basta un puntatore ad una stringa per lavorare con la stringa.
Il puntatore è solamente l'indirizzo, ma devi creare lo spazio per avere la stringa.
Poi vorrei capire cosa vuol dire
%as
in scanf("%as", &binarystring);
Fai attenzione a binarystring perché è un puntatore e non una stringa ...
01/06/12 5:08
Ti faccio notare che per l'input del valore decimale hai usato una stringa
char decimalstring[MAXSIZE];
mentre per l'input del valore binario hai usato un puntatore
char *binarystring
senza nessuna stringa.
Non capisco perché ragioni in maniera diversa nei due casi. Ovviamente uno dei due è sbagliato ...