tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1184
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    einszwo einszwo ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Hallo,

    ich bin noch Programmieranfaenger und habe eine Funktion geschrieben, die ich aufrufen moechte. Die Funktion sucht in einem Feld nach Leerzeichen und schreibt den Inhalt, der nach den Leerzeichen kommt in einen neuen string, der dann in ein char umgewandelt wird.

    char FileIO::IgnoreWS(char* string)
    {
    std::string nstring;
    int i=0;
    while(string[i] == ' ')
    {
    i++;
    }
    nstring += string;
    nstring=nstring.substr(i);
    const char* cstring = nstring.c_str();
    printf(cstring); //das was ich mir hier ausgebe, brauche ich in meinem Hauptprogramm!

    return *cstring;

    }

    Wenn ich die im Hauptprogramm aufrufen moechte:

    char cstring[256];
    cstring = IgnoreWS(line); //line ist als char line[256] definiert und enthaelt eine Zeile einer eingelesenen Textdatei

    bekomme ich folgende fehlermeldung:

    error C2440: '=' : cannot convert from 'char' to 'char [256]'
    There are no conversions to array types, although there are conversions to references or pointers to arrays

    Ich denke, es gibt Probleme, weil nur der Pointer uebergeben wird und nicht wirklich der Inhalt. Ich brauche aber den Inhalt des Feldes aus meiner Funktion im Hauptprogramm. Wie stelle ich das an?

    Ich waere fuer jede Hilfe dankbar.
     

  2. #2
    Avatar von x_Red_Eagle_x
    x_Red_Eagle_x x_Red_Eagle_x ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    181
    Ich schätz mal des Problem liegt darin dass der Rückgabewert bei dir char ist und wie der Compiler schon sagt dass du, des in ein char[256] feld schreiben willst.

    Ich würd mal schauen ob er die ganze Zeichenkette übergibt -> für mich is char 1 Zeichen
    mfg
     

  3. #3
    einszwo einszwo ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    Du meinst, wenn ich statt:

    return *cstring;
    return cstring;

    schreibe?

    Das will er auch nicht...
    Fehler: error C2440: 'return' : cannot convert from 'const char *' to 'char'
    This conversion requires a reinterpret_cast, a C-style cast or function-style cast

    Wie bekomme ich den Inhalt von cstring in meine Hauptroutine?
     

  4. #4
    einszwo einszwo ist offline Rookie
    Registriert seit
    Jun 2004
    Beiträge
    6
    jetzt funktioniert's

    Habe string statt char uebergeben.
    Das einzige, was mich stoert, ist dass ich jedes mal im Programm in char umwandeln muss, weil ich sonst den Inhalt nicht mit sscanf lesen kann...

    Trotzdem danke.
     

  5. #5
    Registriert seit
    Jul 2003
    Ort
    Duisburg (NRW)
    Beiträge
    1.788
    Wenn du schon so fortschrittlich bist, std::strings zu verwenden (dank C++), dann könntest du doch eventuell auch von sscanf auf std::istream umsteigen. In deinem Fall wäre vielleicht std::istringstream aus der Headerdatei <sstream> nützlich.
     
    Chor: "Wir sind der Chor, und wir stimmen zu. Wir stimmen zu, wir stimmen zu, wir stimmen zu."

Ähnliche Themen

  1. DB Aufruf in einer Funktion
    Von Tekkion im Forum Visual Basic 6.0
    Antworten: 0
    Letzter Beitrag: 12.03.09, 10:29
  2. Antworten: 1
    Letzter Beitrag: 21.04.08, 17:06
  3. Einmaliger Aufruf einer Funktion
    Von Thopeto im Forum VisualStudio & MFC
    Antworten: 4
    Letzter Beitrag: 22.05.05, 17:32
  4. Pointer auf zwei verschiedene Viewklassen mit einer Funktion
    Von ensae im Forum VisualStudio & MFC
    Antworten: 2
    Letzter Beitrag: 17.05.05, 12:16
  5. Aufruf einer PHP-Funktion über JS
    Von bastiglasl im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 19.07.04, 11:22