Kaptein... Skrevet 27. januar 2009 Del Skrevet 27. januar 2009 char usrnr[128] = {' '}; cin >> usrnr; usrnr_test += usrnr; if (usrnr_test=="usr1") { char *pfu = "usr1"; //Linje 105 char *ping_path = pfu; } usr_info_post.open(ping_path,ios::out|ios::app|ios::ate|ios::binary); usr_info_post << usrnr << " - " << nickname; usr_info_post.close(); Har lett en del på nette men ikke funnet noen løsning Dette er bare deler av koden. Feil melling: 105: warning: deprecated conversion from string constant to ‘char*’ 105 Lenke til kommentar
OldMan Skrevet 27. januar 2009 Del Skrevet 27. januar 2009 Du bør bruke: const char* pfu = "usr1"; Lenke til kommentar
zotbar1234 Skrevet 29. januar 2009 Del Skrevet 29. januar 2009 char usrnr[128] = {' '}; cin >> usrnr; usrnr_test += usrnr; if (usrnr_test=="usr1") { char *pfu = "usr1"; //Linje 105 char *ping_path = pfu; } usr_info_post.open(ping_path,ios::out|ios::app|ios::ate|ios::binary); usr_info_post << usrnr << " - " << nickname; usr_info_post.close(); Ved siden av det OldMan har foreslått, hvorfor i alle dager bruker du char-pekere til I/O i C++? Lese ting rett inn i char* vha cin er å be om buffer overflow feil. Har du en mulighet, bruke std::string eller en klasse med lignende funksjonalitet, slik at du slipper å bry deg om den type ting. Må du snakke med noe legacy/C-kode, konverter fra std::string til const char* akkurat ved de kallene. Livet blir litt enklere da. Lenke til kommentar
Dj_Offset Skrevet 29. januar 2009 Del Skrevet 29. januar 2009 if (usrnr_test=="usr1") { char *pfu = "usr1"; //Linje 105 char *ping_path = pfu; } Du er klar over at ping_path *ikke* eksisterer *etter* denne blokka? Lenke til kommentar
Blazer84 Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 if (usrnr_test=="usr1") { char *pfu = "usr1"; //Linje 105 char *ping_path = pfu; } Du er klar over at ping_path *ikke* eksisterer *etter* denne blokka? Det er vel strengt tatt en compilerinnstilling hvorvidt scope'en skal gå utover deklarerte variabler i for- og whileløkker, samt if-constructs. Det var ihvertfall slik sist jeg sjekket, skal riktignok ikke skryte på meg å si hvorvidt de har satt det til en standard i c++0x. Lenke til kommentar
zotbar1234 Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 if (usrnr_test=="usr1") { char *pfu = "usr1"; //Linje 105 char *ping_path = pfu; } Du er klar over at ping_path *ikke* eksisterer *etter* denne blokka? Det er vel strengt tatt en compilerinnstilling (...) Nei, det er det ikke. Dvs. det kan godt være en kompilatorinnstilling, men ihht standarden eksisterer variabelen i den blokken den er definert i (og opphører å eksisterere når kontrollen forlater blokken). Slik har det vært siden 1998 (om ikke lengre enn det). Lenke til kommentar
Dead_Rabbit Skrevet 23. februar 2009 Del Skrevet 23. februar 2009 Ja, det er riktig som zootbar1234 sier. En blokk er en blokk, og for automatiske variabler er scopen den blokken som variabelen ble definert i. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå