c-Funktion mit in C++ integrieren
-
Wieso schreibst du überhaupt eine eigene C-Funktion dafür? Verwende doch lieber std::string und std::getline().
-
Bibliotheken werden in der Stringeingabe.h eingebunden und dann gibt es halt Sachen, die der C++-Compiler von C nicht erlaubt.
Trotzdem Danke.
-
Ich sehe da drei Möglichkeiten:
1. Du hast vergessen die Funktion dazu zu linken.
2. Der Objektcode zu der Funktion war doch mit einem C++-Compiler übersetzt und nicht mit einem C-Compiler
3. Du hast etwas anderes falsch gemacht . Zum Beispiel Tippfehler oder falsche Funktionssignatur.
-
ugoessner schrieb:
Bibliotheken werden in der Stringeingabe.h eingebunden
Ich hoffe du glaubst nicht, dass die da schon gelinkt werden. Oder bindest du tatsächlich den Quelltext ein? Beides würde deinen Fehler erklären.
-
g++ test.cpp Stringeingabe.c
Stringeingabe.c: In function ‘char* stringeingabe()’:
Stringeingabe.c:5:18: error: invalid conversion from ‘void*’ to ‘char*’
Stringeingabe.c:21:20: error: invalid conversion from ‘void*’ to ‘char*’mit zusätzlich eingebundenen 'stdio.h' und 'stdlib.h'.
So schaut es jetzt im Terminal aus.
-
Du sagst doch selbst, dass in C einige Sachen erlaubt sind, die es nicht in C++ sind, z. B. die automatische Konvertierung von void* in char*. Trotzdem benutzt du einen C++-Compiler für die C-Datei.
-
Ich wollte mit Stringeingabefunktion auch in C++ arbeiten wie z.B. Klassen.
In C kann ich keine Klassen proggen auch wenn es objectiveC gibt.
Und so eine tolle Funktion bekomme ich viell. in C++ nicht hin.Gruß Uwe.
-
So eine "tolle" Funktion brauchst du in C++ auch nicht selber zu schreiben, dafür gibt es schon etwas vorgefertigtes:
#include <string> #include <iostream> std::string stringeingabe() { std::string result; std::getline(std::cin,result); return result; }
-
Vielen lieben Dank.
Hab es gerade selber ausprobiert std::string. einfach super.
Wie lange gibt es so was schon?
Ich habe vor längerer Zeit ungefähr vor 4 Jahren die Stringlib eingesetzt und nur Fehlermeldung gehabt. Deswegen hab ich mir jetzt in C ne Funktion gebastelt.PS: Gibt es bei getline() irgendwo Einschränkungen?
Gruß Uwe.
-
Oh, schon recht lange. Mehr als 4 Jahre.
Vielleicht möchtest Du
http://www.cplusplus.com/reference/string/string/
durchschauen und anlesen.
-
ugoessner schrieb:
PS: Gibt es bei getline() irgendwo Einschränkungen?
Ja, du kannst maximal
std::numeric_limits<size_t>::max()-1
Zeichen damit einlesen (mehr passt nicht in einen std::string). Aber wer wirklich an dieses Limit kommt, hat ganz andere Probleme.
-
ugoessner schrieb:
Ich hab in C eine Funktion geschrieben und will sie jetzt auch in C++ einsetzen.
Nichts leichter als das.
http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html
-
Dieser Thread wurde von Moderator/in rüdiger aus dem Forum Rund um die Programmierung in das Forum C++ (auch C++0x) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.