• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto Codice Non Funzionante

lucifero

Nuovo utente
Autore del topic
6 Maggio 2010
16
0
Miglior risposta
0
perche non funziona poi e possibile usare il ciclo while invece che degli if
grazie

#include<stdio.h>

int main(){

char nome[]="niko";
int pass=1234;
printf("\t######################\n");
printf("\t######LOADING...######\t\n",&nome);
printf("\t######USERNAME..######\t\n",&nome);
printf("\t######################\t\n");
scanf("\t %s",nome);
if (nome == "niko"){
printf("SEI ENTRATO...\n");
}

else {
printf("LOADIND...ERROR\n",&nome);
}
printf("DIGITA LA PASSWORD\n",pass);
scanf("%d", &pass);
if ( pass == 1234){
printf("SEI ENTRATO \n",& pass);}


else {


printf("HAI SBAGLIATO ",pass);
printf("PASSWORD NON CORETTA\n",pass);}



return 0;
}
 
Ma è tutto sbagliato...Ti consiglio di ripassarti gli input da tastiera, e i printf, perchè hai messo cose che non c'entrano assolutamente nulla.

Prova con questo :

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
System32, anche il tuo codice è errato. char *nome[5] è un array di puntatori a carattere, non certo una stringa. Negli array, il nome della variabile indica di per sé il puntatore al primo elemento, quindi nome punta al primo elemento dell'array, che a sua volta è un puntatore. Ne deriva che &nome è l'indirizzo del puntatore al primo puntatore dell'array.
 
System32, anche il tuo codice è errato. char *nome[5] è un array di puntatori a carattere, non certo una stringa. Negli array, il nome della variabile indica di per sé il puntatore al primo elemento, quindi nome punta al primo elemento dell'array, che a sua volta è un puntatore. Ne deriva che &nome è l'indirizzo del puntatore al primo puntatore dell'array.

Dunque qual'è la soluzione ? :emoji_slight_smile:
 
Mentre nell'uso di scanf:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

In un array se metti nome[5] significa che la variabile "nome" contiene 5 caratteri ( partendo da 0 ), ma se tu metti nome[0] nello scanf allora al momento della scelta, il programma prendere solo la prima lettera della variabile nome, cioè solo la n.

EDIT : Perchè le doppie parentesi ?
 
#include <stdio.h>
#include <stdlib.h>



char nome[4]= "niko",nome_inserito[4];
int pass;



int main(void){
printf("\t######################\n");
printf("\t######LOADING...######\n");
printf("\t######USERNAME..######\n");
printf("\t######################\n");


printf("\tINSERIRE USARNAME\n");
scanf("%s",nome);
if (nome [4]== nome_inserito[4]){
printf("\tSEI ENTRATO...\n");
} else {
printf("\tLOADING...ERROR\n");}
printf("\tDIGITA LA PASSWORD\n");
scanf("%d",&pass);
if ( pass == 1234 ) {
printf("\tSEI ENTRATO \n");
} else {
printf("\tHAI SBAGLIATO \n");
printf("PASSWORD NON CORETTA\n");}

return 0;
}

cosi fuonziona se mettiamo un nome di 4 caratteri
 
Segno come risolto e sposto nell'apposita sezione ;)

P.S. La prossima volta usa un titolo consolo all'argomento trattato nella discussione, grazie :emoji_slight_smile: (Avverto e modifico io per adesso)
 
Ultima modifica: