Avatar billede rantzausgade7 Nybegynder
20. maj 2002 - 19:01 Der er 5 kommentarer og
1 løsning

Function som returnerer en streng

Hej eksperter!

Jeg skal bruge en funktion i C, som skal returnerer en string. Dvs. at den skal fungere som en kommandolinie - lidt ligesom i en DOS-prompt, hvorfra man kan lave funktionskald.
Jeg arbejder på UNIX på en SUN-terminal.
Jeg har prøvet med følgende kode, men kan ikke få det til at virke:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char skriv_kommando(){
    string x;
    printf("\nIndtast kommando: ");
    sscanf("%s", &x);
    return x;
}

Jeg er godt klar over, at der ikke "findes" strenge i C - eller at de i hvert fald bliver behandlet som et array af chars.

På forhånd tak!
Avatar billede codemon Nybegynder
20. maj 2002 - 19:19 #1
char* skriv_kommando(){
Avatar billede codemon Nybegynder
20. maj 2002 - 19:25 #2
Jeg så ikke at du brugte string x. Bruger du c++ std::string? eller er det en hjemmelavet type
Avatar billede rantzausgade7 Nybegynder
20. maj 2002 - 19:28 #3
Har "kun" included <string.h>. Men er der ikke noget med at man skal skrive: using namespace std; efter #include <string.h> ???
Avatar billede rantzausgade7 Nybegynder
20. maj 2002 - 19:36 #4
Det virkede ikke med den pointer! :( - den går ind i en uendelig løkke.
Main ser således ud:
int main(){
  string x;
  int exit = 0;
  while (exit == 0){
      x = skriv_kommando();
        if (x = "clear"){
              init_disp();
        }
        else {
              if (x = "exit"){
                exit = 1;
              }
        }
    }
}
Avatar billede codemon Nybegynder
20. maj 2002 - 20:16 #5
først, der findes ikke strenge i C, men der findes strenge i C++ std::string er en del at STL - Standard Template Library. I C er strenge rigtig nok kun char arrays (og i C++ før STL)

husk 2 == i sammenligning
if (x == "clear) og if(x == "exit)
Avatar billede chries Nybegynder
20. maj 2002 - 20:30 #6
string skriv_kommando()
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