Pro-Linux.de

Pro-Linux

Pro-Linux Diskussions- und Hilfeforum
Aktuelle Zeit: 20. Nov 2018 22:22

Alle Zeiten sind UTC+01:00




Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem mit C++ Übungsprogramm
BeitragVerfasst: 04. Aug 2007 8:31 
hallo

Ich habe probleme mit der Fehlermeldung für ein C++ Übungsprogramm.
Code:
#include <cstring>
#include <string>
#include <iostream>

char first&#91;100&#93;;
char last&#91;100&#93;;
char full_name&#91;100&#93;;

int main&#40;&#41;
&#123;
        std&#58;&#58;cout << "Vorname&#58; ";
        std&#58;&#58;getline&#40;std&#58;&#58;cin, first, sizeof&#40;first&#41;&#41;;
        std&#58;&#58;cout << "Nachname&#58; ";
        std&#58;&#58;getline&#40;std&#58;&#58;cin, last, sizeof&#40;last&#41;&#41;;

        std&#58;&#58;strncpy&#40;full_name, first, sizeof&#40;full_name&#41;&#41;;

        std&#58;&#58;strncat&#40;full_name, " ", sizeof&#40;full_name&#41;&#41;;
        std&#58;&#58;strncat&#40;full_name, last, sizeof&#40;full_name&#41;-strlen&#40;full_name&#41;-1&#41;;

        std&#58;&#58;cout << "Dein Name ist " << full_name << "\n";

        return &#40;0&#41;;
&#125;
Beim Kompilieren erhalte ich nun die Meldung:
Code:
$ g++ -Wall name2.cpp -o name2
name2.cpp&#58; In function ‘int main&#40;&#41;’&#58;
name2.cpp&#58;12&#58; error&#58; no matching function for call to ‘getline&#40;std&#58;&#58;istream&, char &#91;100&#93;&#41;’
name2.cpp&#58;14&#58; error&#58; no matching function for call to ‘getline&#40;std&#58;&#58;istream&, char &#91;100&#93;&#41;’
Irgendwi hänge ich da jetzt schon eine ganze Zeit dran und komme zu keiner Lösung.

Vielen Dank


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 05. Aug 2007 12:08 
Ähm, ohje. Du solltest dir ein gutes Buch kaufen und das hier mal lesen.
http://www.c-plusplus.de/forum/viewforu ... 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.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 05. Aug 2007 12:28 
Bei dem Code geht es darum C Strings in C++ zu benutzen.

im ursprünglichen beispiel entfallen diese zeilen
Code:
std&#58;&#58;getline&#40;std&#58;&#58;cin, first, sizeof&#40;first&#41;&#41;;
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


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 06. Aug 2007 0:24 
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.


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC+01:00


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de