Pagina 1 di 1

casting imprevisto? [C]

Inviato: dom 23 mar 2008, 14:56
da gattino_usb
salve...sono sempre alle prese col mio stupido programino :D
ma questa parte di codice mi da delle noie

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>

int main ()
{
printf (" QUESTO PROGRAMMA DATO UN IP ne ricava IND DI RETE E BCAST \n\n");

	int A[4];

	printf ("inserire l'indirizzo ip: ");
	scanf ("%i.%i.&i.%i",&A[0],&A[1],&A[2],&A[3]);

	printf (" \n \n");
	printf("Hai inserito %i . %i . %i . %i \n ",A[0],A[1],A[2],A[3]);
insomma...io inserisco l'ip e i primi 2 valori nell array al printf me li stampa giusti,mentre gli ultimi 2 no :(
quale protrebbe essere il problema?

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 15:17
da robbybby
Se aggiungi questa riga di inizializzazione incominci a vedere la luce :)

Codice: Seleziona tutto

int A[4] = {0, 0, 0, 0};
Io non mi sono mai trovato bene con la scanf(). Meglio usare gets()/fgets() e fare il parsing della stringa che viene letta.

Poi una piccola nota, dettata piu' che altro da gusti personali, ma fare
&A[3] e' ridondante. Basta un A+3, in questo modo:

Codice: Seleziona tutto

scanf ("%i.%i.&i.%i",A,A+1,A+2,A+3);

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:06
da Mario Vanoni
gattino_usb ha scritto:salve...sono sempre alle prese col mio stupido programino :D
ma questa parte di codice mi da delle noie

Codice: Seleziona tutto

#include <stdio.h>
#include <stdlib.h>

int main ()
{
printf (" QUESTO PROGRAMMA DATO UN IP ne ricava IND DI RETE E BCAST \n\n");

	int A[4];

	printf ("inserire l'indirizzo ip: ");
	scanf ("%i.%i.&i.%i",&A[0],&A[1],&A[2],&A[3]);

	printf (" \n \n");
	printf("Hai inserito %i . %i . %i . %i \n ",A[0],A[1],A[2],A[3]);
insomma...io inserisco l'ip e i primi 2 valori nell array al printf me li stampa giusti,mentre gli ultimi 2 no :(
quale protrebbe essere il problema?
man scanf | grep '\&'

Domanda:
da dove viene ... %i.&i.%i ... ?

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:26
da gattino_usb
Mario Vanoni ha scritto: man scanf | grep '\&'



Domanda:
da dove viene ... %i.&i.%i ... ?

dovrei fare in modo che dopo l'inserimento del punto esso vada a scrivere in un altra posizione dell'array,cosi lo vedo comodo,sembrerebbe funzionare...ma premetto che sono un neofita del C e che me ne intendo molto poco.


@Mario Vanoni: potresti essere un po meno "sfottente" nelle risposte? risposte come "vai a guardarti il manuale" o simili sono leggermente irritanti,anche se sono utili,ma se ritieni che nel manuale ci sia scritto,inserisci la riga dove piu o meno si puo trovare la risposta ;)
cio che mi hai scritto te come comando a prima vista non risolve il problemaa...se me lo potresti spiegare te ne sarei molto grato.

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:36
da gattino_usb
robbybby ha scritto:
Io non mi sono mai trovato bene con la scanf(). Meglio usare gets()/fgets() e fare il parsing della stringa che viene letta.
ahi ahi ahi ecco cosa vuol dire non conoscere bene il C...purtroppo conosco solo quelle poche funzioni imparate e uso quelle...a proposito... OFFTOPIC avreste niente da consigliare come libro ad un neofita del C? o qualcosa che sia disponibile in rete magari...

@Mario Vanoni: Non mi rispondere con " man " seguito da una lista infinita di funzioni :lol:

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:41
da conraid
gattino_usb ha scritto: avreste niente da consigliare come libro ad un neofita del C? o qualcosa che sia disponibile in rete magari...
In rete non so, ma cartaceo "il manuale" è il K&R, ovvero Il linguaggio C. Principi di programmazione e manuale di riferimento di Brian W. Kernighan e Dennis M. Ritchie

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:44
da gattino_usb
conraid ha scritto:
gattino_usb ha scritto: avreste niente da consigliare come libro ad un neofita del C? o qualcosa che sia disponibile in rete magari...
In rete non so, ma cartaceo "il manuale" è il K&R, ovvero Il linguaggio C. Principi di programmazione e manuale di riferimento di Brian W. Kernighan e Dennis M. Ritchie
ahimè è fin troppo astruso per un neofita come me :lol: ce l'ho e sinceramente pur essendo fatto bene...lo trovo qua e la intricato...

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:50
da phobos3576
Si ma ... come dice Mario Vanoni ... da dove viene %i.%i.&i.%i ????
:-k :-k :-k :-k

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:55
da Mario Vanoni
gattino_usb ha scritto: @Mario Vanoni: potresti essere un po meno "sfottente" nelle risposte? risposte come "vai a guardarti il manuale" o simili sono leggermente irritanti,anche se sono utili,ma se ritieni che nel manuale ci sia scritto,inserisci la riga dove piu o meno si puo trovare la risposta ;)
cio che mi hai scritto te come comando a prima vista non risolve il problemaa...se me lo potresti spiegare te ne sarei molto grato.
Non sfoto, cerco
- a capire il tuo problema
- ad aiutarti

La conversione di scanf basa su segno percento ("%"),
seguito dal tipo di informazione, p.e. %i == cifra intera.

Una conversione "&i" non la conosco, scusami tanto
per questo la mia domanda, se offensiva, chiedo un secondo scusa.

man scanf | grep '\&' era per far veder dove compare il segno "&",
infatti il risultato e` nullo.

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 16:59
da gattino_usb
Mario Vanoni ha scritto:
gattino_usb ha scritto: @Mario Vanoni: potresti essere un po meno "sfottente" nelle risposte? risposte come "vai a guardarti il manuale" o simili sono leggermente irritanti,anche se sono utili,ma se ritieni che nel manuale ci sia scritto,inserisci la riga dove piu o meno si puo trovare la risposta ;)
cio che mi hai scritto te come comando a prima vista non risolve il problemaa...se me lo potresti spiegare te ne sarei molto grato.
Non sfoto, cerco
- a capire il tuo problema
- ad aiutarti

La conversione di scanf basa su segno percento ("%"),
seguito dal tipo di informazione, p.e. %i == cifra intera.

Una conversione "&i" non la conosco, scusami tanto
per questo la mia domanda, se offensiva, chiedo un secondo scusa.
tranquillo,ho freinteso. devo chiedere IO scusa a TE ;)
man scanf | grep '\&' era per far veder dove compare il segno "&",
infatti il risultato e` nullo.
grazie per la tua risposta :)
ho CAPITO l'errore :D un piccolo errore di battitura :D grazie mille

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 18:43
da robbybby
Ritengo anch'io che il K&R sia il testo migliore per imparare il C.

Il K&R non e' astruso, ma molto succoso (e anche stringato). Mi spiego: se leggi una pagina diece volte, tutte e dieci le volte trovi informazioni in piu', che non avevi notato prima. Tutto cio' imho.
Il K&R non e' comunque fatto per insegnare a programmare da zero. E' fatto per insegnare il C a chi conosce gia' almeno i rudimenti della programmazione strutturata.
Inoltre non e' un testo a che si puo' sperare di comprendere dandogli una lettura veloce: richiedo un certo impegno e concentrazione. Per studiarlo devi impegnarti, ma poi vedi che li' c'e' tutto quello di cui hai bisogno.

Re: casting imprevisto? [C]

Inviato: dom 23 mar 2008, 18:48
da gattino_usb
personalmente in alcune spiegazioni ho avuto qualche perplessità,seppur si,avendo notato che si tratta di un testo molto completo.