Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » name[5][11] PROBLEM!!!

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.01.2007, 09:46 Uhr
Svolf



Hi,..und zwar soll ich ein Spiel programmieren(Informatikunterricht)
und habe mir erstmal ein kleines Programm geschrieben für die Namen, dass wie folgt aussieht:


Code:


#include <cstdlib>
#include <iostream>
#include <conioex.h>

using namespace std;

int zufall;
int zufall_2;
int wert;
char name[5][11];

int main(int argc, char *argv[])
{
    srand(time(NULL));
    
  for(int x=0; x<6; x++)
  {  
    
    system("cls");
    
    gotoxy(35,10);
    
    zufall=rand()%70;
    zufall_2=rand()%100;
        
    cout << zufall << " + " << zufall_2 << ": ";
    cin >> wert;
    
    system("cls");
    
    gotoxy(30,10);
    
    cout << "Wie lautet ihr Name: ";
    cin >> name[x];
}
    
    system("cls");
    
    for(int i=0; i<6; i++)
    {
            gotoxy(30,10 + i);
            cout << name[i];
    }
    
    system("PAUSE");
    return EXIT_SUCCESS;
}




Und zwar nun meine Frage mit name[5][11] darf man maximal 5 Namen speichern die je 10 Zeichen lang sind (11 Zeichen /0),...aber in der Schleife lese ich nur die Zeilen aus mit den Spalten,.aber man kann doch theoretisch mehr als 10 Zeichen angeben und das Programm stürtzt ab =(,..

Ich wollte fragen,..ob mir jemand ein einfaches Beispiel (besten wäre mit mein Programm) zeigen kann wie man nur max. 10 Zeichen für einen Namen erkennt.

Desweiteren habe ich das Programm hier noch:



Code:


include <iostream>
#include <conio>

#define MAX_CHAR                10

int main ()
{
    char getName[50];
    char name[5][MAX_CHAR];
    int nameCount;

    std::cout << "Dein Name ";
    std::cin >> getName;

    for (int i = 0; i < MAX_CHAR; ++i)
    {
        name[nameCount][i] = getName[i];
    }
    name[nameCount][MAX_CHAR] = ' ';

    std::cout << std::endl << "Hallo " << name[nameCount] << std::endl;

    getch ();

    return 0;
}




Doch leider, wenn man da mer als 10 Zeichen eingibt kommen sone komischen Zeichen.
Vielleicht kann mir ja einer sagen wieso/warum? und mir es vielelicht auch an einem BEispiel erklären.

Schon einmal DANKE im voraus,

mfg
Svolf

Dieser Post wurde am 29.01.2007 um 09:47 Uhr von Svolf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.01.2007, 11:13 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


mit fgets kannst du sagen wieviele Zeichen du einlesen willst. Als Eingabestrom musst du einfach STDIN angeben.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
29.01.2007, 16:19 Uhr
Karldin Shinowa
Professional Noob


Gehört nich zum Thema aber: #include <conioex.h>
Neuer Standart??? Oder was is das. Ex bedeutet ja bei den winapi klassen neue version....
Bitte um aufklärung.
Btw. Svolf darfts du die STL stringklasse nicht verwenden? sonst ginge das ja so wie du wolltest.....
--
Ich will die Welt verbessern, doch Gott gibt mir nicht den Code.

Dieser Post wurde am 29.01.2007 um 16:20 Uhr von Karldin Shinowa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
29.01.2007, 17:15 Uhr
Blubber2063



C++ und fgets ist aber nicht so das wahre, dann eher cin.getline(char* buffer, int length) ,
falls ich die Syntax richtig in Erinerung habe benutzen. Generell wundert es mich das cin einfach so auf char* drauf los liest.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.02.2007, 20:48 Uhr
berniebutt



Also, wenn du einen array doppelt indiziert hast, dann musst du auch 2 Indizes verwenden
und nicht nur einen. Eigentlich müsste der Compiler dir den code schon um die Ohren hauen

Dieser Post wurde am 23.02.2007 um 23:36 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.02.2007, 23:09 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von berniebutt:
Also, wenn du einen array doppelt indiziert hast, dann musst du auch 2 Indizes verwenden
und nicht nur einen. Eigentlich müsste der Compiler dir den code schon um die Ohren hauen.

Nein, denn die eine Dimension ist im Prinziep ein Array aus C-Strings.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: