Pagina 1 di 2

Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 11:14
da huyol
ciao a tutti,

ho iniziato da poco a studiare il linguaggio di programmazione C ed avrei progettato un mini programma che "dovrebbe" dapprima chiedere qual è la parola che si vuole stampare a video, l'utente digita la parola, il sistema la acquisisce e la restituisce a video con la frase "la frase da te scelta è.........".
Il programma l'ho chiamato stampaParola, è stato compilato da gcc, però se da Terminale digito "stampaParola" appare la scritta "comando non trovato" anche se l'eseguibile è regolarmente presente.....sicuramente c'è qualcosa di sbagliato e se il compilatore non mi ha dato nessun warning non dovrebbe trattarsi di errore di sintassi, bensì di errore logico, per il quale occorrerebbe un debugger...che io ancora non ho perché non so qual è il migliore fra di essi per un principiante come me.
Potreste cortesemente dare un'occhiata al programmino dicendomi se e dove c'è qualche errore....e...già che ci siete :mrgreen: ...il debugger migliore per un principiante qual è?....grazie infinite O_/
Codice: Seleziona tutto
/* PROGRAMMA PER LA STAMPA DI UNA PAROLA */

#include<stdio.h>
main ()
{
char parola;
printf ("quale parola vuoi digitare?");
scanf ("%c", &parola);
printf ("la parola da te scelta è %c", parola);
}

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 11:32
da MassimoB
non hai dichiarato int il main e non hai chiuso con return 0

Codice: Seleziona tutto
#include<stdio.h>
int main ()
{
    char parola;
    printf ("quale parola vuoi digitare?");
    scanf ("%s", &parola);
    printf ("la parola da te scelta è: %s\n", &parola);
    return 0;
}


Esegui il file .exe

Ps.

Cerca di prendere l' abitudine a scrivere il codice in modo ordinato.

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 11:39
da MassimoB
il debugger migliore per un principiante qual è?


Installa Netbeans e vivi felice.

E' un ottimo IDE gratuito

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 11:42
da luxinterior
Sull'ambiente gcc purtroppo non so aiutarti ma passatemi l'osservazione secondaria, nulla risolve del quesito attuale Sbaglio io o il carattere di formattazione è sbagliato %s (string) non %c (carattere)

huyol hai cercato il file .exe nella directory di output del progetto? Controlla la data e verifica sia coerente con la tua compilazione.

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 11:57
da huyol
ragazzi, prima di tutto grazie infinite....ho effettuato le correzioni suggeritomi da MassimoB e da luxinterior, però il compilatore mi dà sempre errore....
però ho pensato una cosa....non è che devo dichiarare la variabile parola come array, considerato che la variabile parola non è composta da un solo carattere, ma può essere composta da n caratteri?
Codice: Seleziona tutto
franco@HP-15-Notebook-PC:~/Scrivania$ gcc STAMPAPAROLA.c -o stampaParola
STAMPAPAROLA.c: In function ‘main’:
STAMPAPAROLA.c:10:1: warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘int’ [-Wformat=]
printf ("la parola da te scelta è %s", parola);
^
STAMPAPAROLA.c:12:1: error: expected ‘;’ before ‘}’ token
}
^
franco@HP-15-Notebook-PC:~/Scrivania$

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 12:00
da MassimoB
Vero mi era sfuggito.
C' era anche un errore nel comando di stampa.
Mi ero fermato agli errori più grossolani

Ho corretto il codice come deve essere

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 12:06
da max75
manca il punto e virgola dopo il return 0

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 12:08
da MassimoB
Hai sbagliato qui

Codice: Seleziona tutto
printf ("la parola da te scelta è: %s\n", &parola);


&parola non parola

Oltre al ;

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 12:17
da huyol
Codice: Seleziona tutto
/* PROGRAMMA PER LA STAMPA DI UNA PAROLA */

#include<stdio.h>

int main ()
{
char parola;
printf ("quale parola vuoi digitare?");
scanf ("%s", &parola);
printf ("la parola da te scelta è %s\n", &parola);
return 0;
}


Codice: Seleziona tutto
franco@HP-15-Notebook-PC:~/Scrivania$ gcc STAMPAPAROLA.c -o stampaParola
franco@HP-15-Notebook-PC:~/Scrivania$ stampaParola
stampaParola: comando non trovato
franco@HP-15-Notebook-PC:~/Scrivania$


ci deve essere una limaturina da fare ancora.......posso mettere char parola[15] lasciando inalterato il resto?

Re: Funzione per la stampa di una parola in C

MessaggioInviato: 17 set 2016, 12:29
da MassimoB
Il codice così come è è giusto

Prova a compilarlo così

Codice: Seleziona tutto
gcc -o stampaParola  STAMPAPAROLA.c