Avatar billede madsj Nybegynder
03. april 2002 - 20:22 Der er 5 kommentarer

dos exit?

Hej

Jeg har lavet en lille dos simulator. Fungerer perfekt, bortset fra en ting, hvordan kommer jeg ud. Koden er som følger:

--
#include <stdio.h>

int main (){
  char kommando[256];
  do {
    printf("Type a command: ");
    gets(kommando);
    system(kommando);
  }
  while(kommando!="quit" || kommando!="exit");
  return 0;
}
--

Compileren er Bloodshed Dev C++ 4.

Mads Jensen
http://php.disney-comics.dk/links
Avatar billede soreno Praktikant
03. april 2002 - 20:49 #1
kunne være en mulighed:

while(true)
{
  printf("Type a command: ");
  gets(kommando);
  if(kommando!="quit" || kommando!="exit")
    return 0;
  else
    system(kommando);
}
Avatar billede soreno Praktikant
03. april 2002 - 20:50 #2
der var vist for meget copy/paste...

while(true)
{
  printf("Type a command: ");
  gets(kommando);
  if(kommando=="quit" || kommando=="exit")
    return 0;
  else
    system(kommando);
}
Avatar billede madsj Nybegynder
03. april 2002 - 21:15 #3
Hej

Compileren blev ikke glad for den while(true). Har du andre forslag?
Forresten, hvis man vil "ud" af andre lignende ting, skal man så bare "returnere" et 0 (NULL) til systemet!

Dette fik jeg tilbage:

c:\dev-c++\projects\str.c: In function `main':
c:\dev-c++\projects\str.c:10: `true' undeclared (first use in this function)
c:\dev-c++\projects\str.c:10: (Each undeclared identifier is reported only once
c:\dev-c++\projects\str.c:10: for each function it appears in.)

Mads Jensen
http://php.disney-comics.dk/links
Avatar billede fri-hash Nybegynder
03. april 2002 - 21:18 #4
prøv evt while(1) istedet
Avatar billede soreno Praktikant
03. april 2002 - 21:24 #5
når du returnerer 0, så er det retur værdien fra main metoden, men det kunne jo også være andre metoder:

#define true 1

int doWork()
{
  while(true)
  {
    printf("Type a command: ");
    gets(kommando);
    if(kommando=="quit" || kommando=="exit")
      return 0;
    else if(kommando=="almost quit")
      return 1;
    else
      system(kommando);
  }
}

int main(int argc, char **argv)
{
  int temp;
  temp = doWork();
  if(temp == 1)
  {
    printf("Nej, du fortryder garanteret!, du får lige endnu en chance :) ");
    doWork();
  }

  return 0;
}
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

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