[C/C++] Frage zum Aufbau von Char Arrays

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Leon, 3. November 2008 .

Schlagworte:
  1. 3. November 2008
    Frage zum Aufbau von Char Arrays

    Hallo,

    grundlegend denke ich das z.B. ein Char Array mit dem Inhalt "Hallo" , an Stelle 0 das Zeichen H hat und an Stelle 1 das Zeichen a etc...
    Leider will diese Überlegung nicht ganz mit meinem C-Programm in Linux übereinstimmen.
    Habe bei folgendem Programm das Problem dass irgendwie die eigentliche Stelle des Arrays immer 2 Stellen früher steht, also zb ist test[0] nun test[-2].
    Bei folgendem Code passiert dies:

    Code:
    void Eingabe(char eingabe[23])
    {
     do
     {
     printf("Ihre Eingabe: ");
     do
     {
     scanf("%s",eingabe);
     }
     while ( getchar() != '\n' ); /* Abfangen des ENTER Buttons */
     
     printf("\n%c\n", eingabe[-1]);
     }while(eingabe[0]!= 'T' && eingabe[0]!='U' && eingabe[0] !='Q');
    }
    
    Hoffe ihr könnt mir helfen.
     
  2. 3. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Ich verstehe irgendwie nicht genau, was du fragen willst/was dein Problem ist.
    Aber folgende Zeile ist schon etwas komisch:
    Code:
    printf("\n%c\n", eingabe[-1]);
    In C/C++ bedeutet array[-1], dass du auf die Stelle im Speicher zugreifst, die vor dem ersten Element des Arrays steht. (Anders als z.B. in C#)
     
  3. 3. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Sry hab etwas wichtiges vergessen, will z.B. "T 2.34" eingeben, also eine Zeichenkette mit Leerzeichen.
    Die eingabe[-1], soll eigentlich eingabe[0] heißen, war nur zu Testzwecken.
     
  4. 4. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Ähm ja, negative Indexe gibts bei C/C++ nicht. Und deine Fragestellung kapier ich nich so ganz, sry :S
     
  5. 4. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Also ich will eine Eingabe machen ala "T 200", nun wird, wie ich mittlerweile herausgefunden habe aber bei einem Leerzeichen, was ja bei "T 200" vorhanden ist scanf abgebrochen, wie kann ich das noch lösen? womöglich mit beliebig vielen Leerzeichen in der Eingabe?
     
  6. 4. November 2008
    AW: Frage zum Aufbau von Char Arrays

    versuch es mal mit

    gets(eingabe);

    anstatt scanf
     
  7. 4. November 2008
    AW: Frage zum Aufbau von Char Arrays

    http://www.dreamincode.net/code/snippet1675.htm
    hier kannst ne zeile von stdin auslesen
     
  8. 9. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Hab jetzt mal folgendes Programmiert:

    Code:
    #include <stdio.h>
    #include <ctype.h>
    #include <string.h>
    
    int main()
    {
     char eingabe;
     float zahlen;
     do
     {
     printf("Ihre Eingabe: ");
     scanf("%c",&eingabe);
     if(eingabe != 'Q') 
     scanf("%11f",&zahlen); 
     if(isalpha(eingabe))
     { 
     printf("%c\n", eingabe);
     printf("%f\n", zahlen);
     }
     }while(eingabe !='Q');
    return 0;
    }
    
    Habe nun aber folgende Probleme:
    Nach der 2. Eingabe wird "Ihre Eingabe ausgegeben und dann die Werte der Variablen, wie kommt das ?
    Das Gleiche tritt auf wenn ich bei der ersten eingabe(Variable eingabe) eine Zahl eingebe nur gibt er halt "Ihre Eingabe: Ihre Eingabe: " aus , scheint wohl das gleiche Problem zu sein. Weiß jemand wie ich das lösen kann?
     
  9. 10. November 2008
    AW: Frage zum Aufbau von Char Arrays

    Was möchtest du denn mit dem Programm ausgeben?

    Beschreibe doch mal was das Programm machen soll?
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.