c

(Programowanie w C) Nazwa użytkownika i hasło


Dlaczego otrzymuję
format „% s” oczekuje argumentu typu „char *”
? Jak mam rozwiązać ten problem?
Oto moje kody:
char UserName[] = "iluvcake";
scanf("%s", &UserName);
printf("Please enter your password: \n");
char PassWord[] = "Chocolate";
scanf("%s", &PassWord);
//if...else statement to test if the input is the correct username.
if (UserName == "iluvcake")
{
if (PassWord == "Chocolate"){
printf("Welcome!\n");
}
}else
{
printf("The user name or password you entered is invalid.\n");
}

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

& amp; nazwa_użytkownika jest wskaźnikiem do tablicy znaków (np. znaku **), której należy użyć
scanf( "%s", UserName );
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

#include<stdio.h>
#include<conio.h>
#include<string.h>main(){
char name[20];
char password[10];
printf("Enter username: ");
scanf("%s",name);
printf("Enter password: ");
scanf("%s",password);
if (strcmp(name, "Admin") == 0 && strcmp(password, "pass") == 0)
printf("Access granted\n");
else printf("Access denied\n");
getch();
}

:)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Powinno być
scanf("%s", UserName);
scanf("%s", PassWord);

ponieważ
UserName
i
PassWord
są wskaźnikami do tablic
char
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

  • scanf dla% s pobiera tablicę/wskaźnik, zamiast wskaźnika do niego. usuń instrukcje
    & amp;
    z instrukcji
    scanf
    .
  • Nie możesz porównywać ciągów z
    ==
    . Użyj
    strcmp
    .

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się