Avatar billede koch Nybegynder
15. april 2005 - 10:18 Der er 8 kommentarer og
1 løsning

Kan ikke få værdi fra scanf()

Jeg har nedenstående funktion som virker, hvis ikke jeg bruger scanf, men selv skriver værdien ind i stedet for livret. Det er naturligvis et tænkt eksempel, er ved at lære C programmering!




#include <stdio.h>
#include <stdlib.h>


    struct restaurant{
        char *name_restaurant;
        char *addres_restaurant;
        int average_cost;
        char *type_food;
        };
   

    struct restaurant aalborg_rest[2];   

   
   
    void print_rest(char *type){   
        int i;
        for (i = 0; i <= 2; i++){
                if (aalborg_rest[i].type_food == type){
                        printf("Restaurenterne der serverer %s er %s og adressen er %s\n", aalborg_rest[i].type_food, aalborg_rest[i].name_restaurant, aalborg_rest[i].addres_restaurant);
                    }
                }
        }
   
int main(int argc, char *argv[])
{
    aalborg_rest[0].name_restaurant = "Såvserestaurant";
    aalborg_rest[0].addres_restaurant = "Vesterbro"; 
    aalborg_rest[0].average_cost = 120;
    aalborg_rest[0].type_food = "Sovs";

    aalborg_rest[1].name_restaurant = "Gullasch af rotter";
    aalborg_rest[1].addres_restaurant = "Strandvejen"; 
    aalborg_rest[1].average_cost = 100;
    aalborg_rest[1].type_food = "Okse los";


    char *livret;

    printf("Indtast din livret \n");
    scanf("%s", &livret);

    print_rest(livret);//her virker det hvis jeg skriver retten ind i stedet for livret og så sletter scanf sætningen også

  system("PAUSE");   
  return 0;
}
Avatar billede arne_v Ekspert
15. april 2005 - 10:20 #1
Prøv:


    char livret[100];
    printf("Indtast din livret: ");
    scanf("%s", livret);
    print_rest(livret);
Avatar billede koch Nybegynder
15. april 2005 - 10:31 #2
det virker heller ikke! Der kommer ikke noget svar når jeg skriver Okse los eller Sovs
Avatar billede arne_v Ekspert
15. april 2005 - 10:39 #3
if (aalborg_rest[i].type_food == type){

skal nok også være

if (strcmp(aalborg_rest[i].type_food,type)==0){
Avatar billede koch Nybegynder
15. april 2005 - 22:28 #4
Det virker, men jeg får den fejl om at jeg kan sende en fejlrapport . Programmet har fundet en fejl og afsluttes står der!
Avatar billede arne_v Ekspert
15. april 2005 - 22:29 #5
skal

for (i = 0; i <= 2; i++){

ikke være

for (i = 0; i < 2; i++){

?
Avatar billede koch Nybegynder
15. april 2005 - 22:37 #6
Naturligvis! Tak for hjælpen. Jeg har læst om funktionen strcmp, men kan man ikke gøre det noget i stil med aalborg_rest[i].type_food == type? Bare af nysgerrighed...

Smid et svar.
Avatar billede arne_v Ekspert
15. april 2005 - 22:41 #7
ikke med C strenge (som er char arrays)
Avatar billede arne_v Ekspert
15. april 2005 - 22:41 #8
svar
Avatar billede koch Nybegynder
15. april 2005 - 22:47 #9
Ok. Mange tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester