Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » In String einlesen.

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
18.08.2005, 23:37 Uhr
Scripta



Hi,
bin absoluter newbie!!! Versuch grad ne kleine Telefonliste auf die Beine zu stellen und habe nun ein Prob!
Ich verwende strings um den Namen darzustellen.
Wenn ich mir nun den Namen anzeigen lassen will, tauchen nur die Zeichen bis zum ersten leerzeichen auf! In diesem Fall also nur der Vorname.


C++:
void TelList::putData(void)
{
    string a;
    cout << "Geben Sie einen Namen ein: ";
    cin  >> a;
    Tel[count].name = a;
...



So hab ich das gelöst. Hab auch schon die Suche benutzt aber nix gefunden.
Wäre nett wenn mir jemand bei dieser Frage helfen könnte.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
19.08.2005, 00:51 Uhr
Pablo
Supertux
(Operator)


Ich mache es immer so:


C++:
#include <iostream>
#include <string>

std::string getline()
{
        std::string buff="";
        int c;

        while( (c = std::cin.get()) != '\n')
                buff.push_back(c);

        return buff;
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
19.08.2005, 01:10 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


warum nicht gleich std::getline verwenden
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.08.2005, 01:18 Uhr
Pablo
Supertux
(Operator)


weil ich die Funktion nicht kannte

naja, ich kenne eine getline (aber ich denke nicht, dass wir diesselbe meinen)
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.08.2005, 23:44 Uhr
~Scripta
Gast


Hab mich mittlerweile dazu entschieden mit char-Array zu arbeiten.
Jetzt ist aber ein neues Problem aufgetaucht:



C++:
void TelList::putData(void)
{
    char n[80];
    cout << "Geben Sie den Namen ein: ";
    gets(n);
    strcpy(n, Tel[count].name);
             ...



n wird nicht nach Tel[count].name kopiert, woran liegt das????
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.08.2005, 00:26 Uhr
predator




Zitat:

char *strcpy(
char *strDestination,
const char *strSource
);



-> erstes Argument = Zielstring, zweites Argument = zu kopierender String

Also grad andersrum wie bei dir
--
Gruß
predator
Zitat von Edsger W. Dijkstra:
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.

Dieser Post wurde am 22.08.2005 um 00:35 Uhr von predator editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.08.2005, 02:55 Uhr
Pablo
Supertux
(Operator)


Die Frage ist wie hast du "name" deklariert.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.08.2005, 14:25 Uhr
~Scripta
Gast


@ predator:
andersrum gehts auch nicht!

@ pablo:
Meinst du "Tel[count].name"? Hab ich in die Struktur "List" gepackt. Diese ist Element meiner Klasse TelList.


C++:
struct List
{
    char name[80];
    unsigned int number;
};


class TelList
{
    private:
        List Tel[50];    
        int count;        
    public:
        TelList()
        {
            for(int i = 0; i < 50; i++)
            {
                Tel[i].name[0] = '\0';
            }

            count = 0;                    
        }    

        void putData(void);        

        void getStrLen(int a);

        void control (int a);    

        void seek(char *a);    

        void print(void);    


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
22.08.2005, 14:47 Uhr
predator



Also, bei mir gehts ...
--
Gruß
predator
Zitat von Edsger W. Dijkstra:
Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Erholung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
23.08.2005, 00:12 Uhr
~rene1
Gast


also getLine würd ich auch empfehlen einfach weil die funktion auf ein enter wartet
bevor das programm weiterläuft
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


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: