Autor Thema: Gemeinschaftsprojekt?  (Gelesen 72294 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline ragnar76

  • Benutzer
  • Beiträge: 527
Re: Gemeinschaftsprojekt?
« Antwort #80 am: Mo 11.07.2011, 21:06:43 »
Ich habs so gemacht, läuft mit gcc und Pure C

#include <stdio.h>

int main(void)
{
  char key;

  printf("druecke Taste \"A\", \"a\" oder \"q\" um das Programm zu beenden\n");

  while((key = getchar()) !='q') {
    if (key  == 'A')
    {
      printf("A gedrueckt\n");
    }
    else if(key == 'a')
    {
      printf("a gedrueckt\n");
    }
  }
}

Ganz vergessen, von PHP und Bash kenne ich die Case Anweisungen. Wie stehts damit?
« Letzte Änderung: Mo 11.07.2011, 21:16:10 von ragnar76 »

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.807
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: Gemeinschaftsprojekt?
« Antwort #81 am: Di 12.07.2011, 17:57:34 »
Die gibts auch in C:

switch(var)
{
case 'a':
/* tu was */
break;
case 'b':
/* tu was anderes */
break;
default:
/* wenn nix zutrifft tu das hier */
break;
}

Wichtig sind die break Anweisungen, sonst bearbeitet er auch immer den nachfolgenden case!
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: Gemeinschaftsprojekt?
« Antwort #82 am: Di 12.07.2011, 18:13:47 »
Das Problem hierbei ist nur das der return code von Cnecin() ein 32 Bit Wert ist - in PureC kann aber maximal ein 16 Bit Wert für eine Switch Anweisung verwendet werden. Das würde dazu führen das der Rückgabewert von Cnecin() zuerst in einen 16Bit Wert komprimitert werden muss...


Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.807
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: Gemeinschaftsprojekt?
« Antwort #83 am: Di 12.07.2011, 18:26:29 »
Ich denke das Problem hast du nur, wenn du volle 32 Bit abfragst.
Ansonsten bau halt einen Typencast ein

switch((uint16_t)my32bit)
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: Gemeinschaftsprojekt?
« Antwort #84 am: Di 12.07.2011, 18:29:26 »
Der Abzufragende Wert liegt aber in den oberen 16 Bit... Mir ist es egal - meinetwegen kann auch switch verwendet werden, ich wollte halt ohne solche Details auskommen, wegen Anfängern und so...

Offline simonsunnyboy

  • Moderator
  • *****
  • Beiträge: 1.807
  • Rock'n'Roll is the thing - Jerry Lee is the king!
Re: Gemeinschaftsprojekt?
« Antwort #85 am: Di 12.07.2011, 18:32:02 »
Anfänger sind bei C eh falsch.
Ansonsten shifte halt den Wert runter bevor du ihn auswertest.

(uint16_t)(mein32bitwert >> 16)
Paradize - ST Offline Tournament
Stay cool, stay Atari!
1x2600jr, 1x1040STFm, 1x1040STE 4MB+TOS2.06+SatanDisk, 1xF030 14MB+FPU+NetUS-Bee

Offline m0n0

  • Benutzer
  • Beiträge: 984
Re: Gemeinschaftsprojekt?
« Antwort #86 am: Mi 13.07.2011, 21:25:46 »
Ich habe gerade Didiers neueste FireTOS version ausprobiert - das abfragen der Auflösung per lineA funktioniert jetzt.... :)