casting imprevisto? [C]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

casting imprevisto? [C]

Messaggio 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?

Avatar utente
robbybby
Linux 4.x
Linux 4.x
Messaggi: 1223
Iscritto il: sab 16 dic 2006, 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: casting imprevisto? [C]

Messaggio 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);

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: casting imprevisto? [C]

Messaggio 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 ... ?

Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

Re: casting imprevisto? [C]

Messaggio 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.

Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

Re: casting imprevisto? [C]

Messaggio 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:

Avatar utente
conraid
Staff
Staff
Messaggi: 13630
Iscritto il: gio 14 lug 2005, 0:00
Nome Cognome: Corrado Franco
Slackware: current64
Desktop: kde
Località: Livorno
Contatta:

Re: casting imprevisto? [C]

Messaggio 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

Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

Re: casting imprevisto? [C]

Messaggio 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...

Avatar utente
phobos3576
Staff
Staff
Messaggi: 2980
Iscritto il: dom 17 apr 2005, 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Re: casting imprevisto? [C]

Messaggio da phobos3576 »

Si ma ... come dice Mario Vanoni ... da dove viene %i.%i.&i.%i ????
:-k :-k :-k :-k

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: casting imprevisto? [C]

Messaggio 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.

Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

Re: casting imprevisto? [C]

Messaggio 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

Avatar utente
robbybby
Linux 4.x
Linux 4.x
Messaggi: 1223
Iscritto il: sab 16 dic 2006, 10:48
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5
Località: Fra Trantor e Terminus

Re: casting imprevisto? [C]

Messaggio 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.

Avatar utente
gattino_usb
Linux 2.x
Linux 2.x
Messaggi: 205
Iscritto il: mar 25 dic 2007, 11:48
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu
Località: Cittadella (Padova)

Re: casting imprevisto? [C]

Messaggio da gattino_usb »

personalmente in alcune spiegazioni ho avuto qualche perplessità,seppur si,avendo notato che si tratta di un testo molto completo.

Rispondi