Repository 32bit  Forum
Repository 64bit  Wiki

casting imprevisto? [C]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 15:56

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
gattino_usb
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu

Re: casting imprevisto? [C]

Messaggioda robbybby » dom mar 23, 2008 16:17

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);
Avatar utente
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1077
Iscritto il: sab dic 16, 2006 11:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: casting imprevisto? [C]

Messaggioda Mario Vanoni » dom mar 23, 2008 17:06

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 ... ?
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 21:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 17:26

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.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu

Re: casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 17:36

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
gattino_usb
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu

Re: casting imprevisto? [C]

Messaggioda conraid » dom mar 23, 2008 17:41

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
conraid
Staff
Staff
 
Messaggi: 11891
Iscritto il: gio lug 14, 2005 0:00
Località: Livorno
Nome Cognome: Corrado Franco
Slackware: current

Re: casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 17:44

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
gattino_usb
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu

Re: casting imprevisto? [C]

Messaggioda phobos3576 » dom mar 23, 2008 17:50

Si ma ... come dice Mario Vanoni ... da dove viene %i.%i.&i.%i ????
:-k :-k :-k :-k
Avatar utente
phobos3576
Staff
Staff
 
Messaggi: 2980
Iscritto il: dom apr 17, 2005 0:00
Slackware: 13.1
Kernel: 2.6.37-smp
Desktop: KDE 4.5.3

Re: casting imprevisto? [C]

Messaggioda Mario Vanoni » dom mar 23, 2008 17:55

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.
Mario Vanoni
Iper Master
Iper Master
 
Messaggi: 3174
Iscritto il: lun set 03, 2007 21:20
Località: Cuasso al Monte (VA)
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey

Re: casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 17:59

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
gattino_usb
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu

Re: casting imprevisto? [C]

Messaggioda robbybby » dom mar 23, 2008 19:43

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
robbybby
Linux 3.x
Linux 3.x
 
Messaggi: 1077
Iscritto il: sab dic 16, 2006 11:48
Località: Fra Trantor e Terminus
Slackware: 13.1 / 64 bit
Kernel: 3.3.x
Desktop: KDE 4.4.5

Re: casting imprevisto? [C]

Messaggioda gattino_usb » dom mar 23, 2008 19:48

personalmente in alcune spiegazioni ho avuto qualche perplessità,seppur si,avendo notato che si tratta di un testo molto completo.
Avatar utente
gattino_usb
Linux 2.4
Linux 2.4
 
Messaggi: 205
Iscritto il: mar dic 25, 2007 12:48
Località: Cittadella (Padova)
Nome Cognome: Alberto Rosso
Slackware: Current
Kernel: 2.6.27
Desktop: Xfce
Distribuzione: Debian, XUbuntu


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti