Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Problem mit C++ Übungsprogramm

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Programmieren - C
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
pil
Gast





BeitragVerfasst am: 04. Aug 2007 8:31   Titel: Problem mit C++ Übungsprogramm

hallo

Ich habe probleme mit der Fehlermeldung für ein C++ Übungsprogramm.
Code:

#include <cstring>
#include <string>
#include <iostream>

char first[100];
char last[100];
char full_name[100];

int main()
{
        std::cout << "Vorname: ";
        std::getline(std::cin, first, sizeof(first));
        std::cout << "Nachname: ";
        std::getline(std::cin, last, sizeof(last));

        std::strncpy(full_name, first, sizeof(full_name));

        std::strncat(full_name, " ", sizeof(full_name));
        std::strncat(full_name, last, sizeof(full_name)-strlen(full_name)-1);

        std::cout << "Dein Name ist " << full_name << "\n";

        return (0);
}

Beim Kompilieren erhalte ich nun die Meldung:
Code:

$ g++ -Wall name2.cpp -o name2
name2.cpp: In function ‘int main()’:
name2.cpp:12: error: no matching function for call to ‘getline(std::istream&, char [100])’
name2.cpp:14: error: no matching function for call to ‘getline(std::istream&, char [100])’

Irgendwi hänge ich da jetzt schon eine ganze Zeit dran und komme zu keiner Lösung.

Vielen Dank
 

PDA
Gast





BeitragVerfasst am: 05. Aug 2007 12:08   Titel:

Ähm, ohje. Du solltest dir ein gutes Buch kaufen und das hier mal lesen.
http://www.c-plusplus.de/forum/viewforum-var-f-is-25.html
http://www.c-plusplus.de/cms
ist die Hauptseite. Ein wenig stöbern schadet nicht.

1. char = character = EIN einzelner Buchstabe
Daraus kann man eine C-Zeichenkette machen #include<cstring>
char * first // C-Zeichenkette (* == Zeiger in diesem Kontext)

2. sizeof ermittelt die Größe des Arrays

3. Um mehrere Namen in das Array zu schreiben kannst du durch das Array "iterieren" (Schleife). Vorher ermitteln ob an der Stelle ein Wert sich befindet, wenn ja -> nächstes Element, wenn nein -> reinschreiben.

4. Benutze Strings (#include<string>)

5. Grundsätzlich immer überprüfen auf eine Index Über- oder Unterschreitung des Arrays.

6. Lesen und Lernen

7. Und so weiter ......

Wobei ich mir hier nicht sicher bin ob du in diesem Fall ein Array benötigst. Eventuell hast du was falsch verstanden.
char first[100] bedeutet -> 100 Elemente von char, und nicht ein Char der Größe 100.
Wie gesagt, nur eine Vermutung. Ist aber ein häufiger Anfänger Fehler.
Die Größe wird durch den Datentyp selbst fest gelegt.

Viel Spaß beim Lernen.

PS: Beim nächsten mal erklärst du besser was dein Code machen soll, das ist in dem Fall nicht wirklich ersichtlich.
 

pil
Gast





BeitragVerfasst am: 05. Aug 2007 12:28   Titel:

Bei dem Code geht es darum C Strings in C++ zu benutzen.

im ursprünglichen beispiel entfallen diese zeilen
Code:

std::getline(std::cin, first, sizeof(first));

mit denen ich Vor und Nachnamen einlesen will. Wahrscheinlich habe ich an der Stelle etwas falsch verstanden und das funktioniert so nur mit C++ strings.
Naja, ich bin jetzt gerade bereits einige Seiten weiter und gucke mir das später noch einmal genauer an.
Verwenden tue ich übrigends das Buch 'Praktische C++ Programmierung' aus dem O'Reilly Verlag und denke, damit einen ganz guten Griff getan zu haben. Deine Links sind sicher eine gute Ergänzug.

Vielen Dank
 

PDA
Gast





BeitragVerfasst am: 06. Aug 2007 0:24   Titel:

Klar kannst du das auch mit C-Strings machen.
Man muss halt nur die Unterschiede wissen z.B. zwischen Strings und C-Strings, zwischen Arrays und Vektoren. Die Methoden sind hier und da verschieden, nun gut.

Und Ja, die O'Reilly Bücher kosten zwar etwas mehr, aber das lohnt sich in der Regel.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Programmieren - C Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy