/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
string til char*
Fra : Michael Sig Birkmose


Dato : 09-05-01 21:12



 
 
Bertel Lund Hansen (09-05-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-05-01 21:17

Michael Sig Birkmose skrev:

>Jeg har et irriterende problem. Jeg har en metode i gtk, som returnerer en
>string. Denne string indeholder et filnavn. Indholdet af denne string vil
>jeg meget gerne bruge til at åbne en fil med - men kommandoen fopen(),
>tager en const char* som parameter.... ikke en string.

Hvor har du typen string fra?
Har du prøvet at bruge den i fopen()?

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Michael Sig Birkmose (09-05-2001)
Kommentar
Fra : Michael Sig Birkmose


Dato : 09-05-01 21:25



Bertel Lund Hansen (09-05-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 09-05-01 21:30

Michael Sig Birkmose skrev:

>Fra en metode get_filename() i et gtk objekt. Jeg går ud fra at string er
>en c++ ting...

Okay, det har jeg ikke helt forstand på. Om ikke andet kan du vel
kopiere din string til en anden variabel som er char*.

Hvis du bruger C, så definer evt. selv string til char*:

   typedef char *string;

Det virker fint (men spolerer måske nogle andre ting i dit
program).

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Michael Sig Birkmose (09-05-2001)
Kommentar
Fra : Michael Sig Birkmose


Dato : 09-05-01 21:38



Bertel Lund Hansen (10-05-2001)
Kommentar
Fra : Bertel Lund Hansen


Dato : 10-05-01 08:37

Michael Sig Birkmose skrev:

>> Det virker fint (men spolerer måske nogle andre ting i dit
>> program).

>Det lyder som en farlig løsning....

Nej nej. Jeg tager bare højde for at du andre steder i programmet
har benyttet kode der forudsætter c++'s definition af string. Der
sker ikke spor ved at bruge den definition jeg gav dig, og så
fjerne den igen hvis det giver fejl.

--
Bertel
http://lundhansen.dk/bertel/   FIDUSO: http://fiduso.dk/

Jakob Møbjerg Nielse~ (09-05-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 09-05-01 21:50

> Fra en metode get_filename() i et gtk objekt. Jeg går
> ud fra at string er en c++ ting...

Er det gtk+ eller gtk--?

Hvis det er gtk-- kan du bruge ifstream strm(get_filename().c_str())

Ved ikke om det virker i C.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Jakob Møbjerg Nielse~ (09-05-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 09-05-01 21:54

> Hvis det er gtk-- kan du bruge ifstream
strm(get_filename().c_str())

c_str() funktionen er vist den du efterlyste i din første post.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Jakob Møbjerg Nielse~ (09-05-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 09-05-01 21:56

> c_str() funktionen er vist den du efterlyste i din første post.

Sidste besked

String har også funktionen copy(p, n), hvor p er en char* og n er
det antal tegn fra din string der skal kopieres over.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Jakob Møbjerg Nielse~ (09-05-2001)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 09-05-01 22:05

> Sidste besked

Nej, _den_ her er den sidste post

> String har også funktionen copy(p, n), hvor p er en char*
> og n er det antal tegn fra din string der skal kopieres
> over.

Jeg ville bare nævne at copy(p, n) ikke laver en gyldig C-string da
char* array'et ikke er null-termineret.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey, he reminds me of someone who looks just like him!" - Me



Igor V. Rafienko (09-05-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 09-05-01 21:54

* Michael Sig Birkmose

> Jeg har et irriterende problem. Jeg har en metode i gtk, som returnerer en
> string.


std::string?


> Denne string indeholder et filnavn. Indholdet af denne string vil
> jeg meget gerne bruge til at åbne en fil med - men kommandoen
> fopen(), tager en const char* som parameter.... ikke en string.


std::string s = "this is a funny filename";
FILE *f = fopen( s.c_str(), "r" );

<URL:http://www.dinkum.com/htm_cpl/string2.html>


> Hvordan får jeg nu konverteret min string til en char* ?


Du vil ikke konvertere string'en din til char*. Du vil ha en const
char*. Det er en stor forskjell.


> Jeg har prøvet med (char*)string_variabel_navn, som ikke duede.


Naturligvis ikke.





ivr
--
Documentation is like sex: when it is good, it is very, very good; and
when it is bad, it is better than nothing.
                  -- Dick Brandon

Ivan Johansen (09-05-2001)
Kommentar
Fra : Ivan Johansen


Dato : 09-05-01 22:00

Michael Sig Birkmose wrote:
> Hvordan får jeg nu konverteret min string til en char* ?
> Jeg har prøvet med (char*)string_variabel_navn, som ikke duede.

Brug string_variabel_navn.c_str()

Ivan Johansen

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste