error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'



  • Hat funktioniert! 👍
    Vielen Dank!

    Gruß,
    Select



  • Null Problemo. :xmas1:

    EDIT: Schaue dir nochmal Pointer/Zeiger in C/C++ an. Dann weißt du auch warum. 😉
    Die Funktion verlangt einen Zeiger, was im Grunde nichts anderes als eine Adresse ist. Mit dem &-Operator übergibst du der Funktion die Adresse deiner Variable.
    :xmas2:



  • Select schrieb:

    Hat funktioniert!

    Das ist dann aber mehr oder weniger Zufall. heizkostenInNK ist ein char, da passt nur ein Zeichen rein. Wenn du mehrere reinkopierst, überschreibst du, was dahinter im Speicher steht.



  • Oh, MFK hat Recht. Habe mir den Rest des Programms gar nicht angeschaut. 😃



  • Das ist dann aber mehr oder weniger Zufall. heizkostenInNK ist ein char, da passt nur ein Zeichen rein. Wenn du mehrere reinkopierst, überschreibst du, was dahinter im Speicher steht.

    Hmmm, das habe ich eben auch festgestellt. Sobald ich den char ausgeben will kommt nur das zuletzt übergeben Zeichen an. Bei...

    strcpy(heizkostenInNK, "Ja");
    cout << heizkostenInNK;
    

    ...also...

    J
    

    ...anstatt...

    Ja
    

    Problem also noch gegeben.

    Gruß,
    Select



  • Anstatt char heizkostenInNK;
    musst du ein Arrayy anlegen :
    char heizkostenInNK[15];

    in strcpy dann das & entfernen



  • Das hatte ich schon erfolglos versucht. Auch ein array bringt mich so leider nicht weiter. Kommt weiterhin zum gleichen Compiler-Error.

    Einzige Möglichkeit, die ich momentan sehe, ist die Buchstaben auf mehrere chars zu verteilen und diese dann nacheinander wieder auzugeben. Das würde mit Hilfe des "&" funktionieren, aber das muss doch auch vereinfacht gehen, oder?

    Gruß,
    Select



  • Select schrieb:

    Auch ein array bringt mich so leider nicht weiter. Kommt weiterhin zum gleichen Compiler-Error.

    Das kann nicht sein. Bitte zeig den Code mit Array und die dazugehörige Fehlermeldung.



  • #include <iostream>
    #include <stdio.h>
    #include <iomanip>
    #include <string.h>
    
    using namespace std;
    
    char heizkostenInNK[5];
    bool on = true;
    int nr;
    
    struct wohnungstyp{
    	bool heizkostenInNK_bool;
    };
    
    wohnungstyp daten[100];
    
    int main(){
       ...
       ...
          if(daten[nr].heizkostenInNK_bool = true){
             strcpy(heizkostenInNK[5], "Ja");          // <- Fehlerzeile 1
          }
          else{
             strcpy(heizkostenInNK[5], "Nein");        // <- Fehlerzeile 2
          }
       ...
       return(0);
    }
    

    Compiler:

    error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    error C2664: 'strcpy' : cannot convert parameter 1 from 'char' to 'char *'
    Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
    

    Danke,
    Select



  • Lass das [5] bei strcpy weg. Und informier dich nochmal über Arrays und deren Verwendung.


Anmelden zum Antworten