Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » unsigned long nach std::stringstream

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
14.07.2005, 22:48 Uhr
Skippy



Ich habe ein kleines problem ich muss folgende funktion portieren



C++:
unsigned long get_file_size(const char *filename)
{
    struct stat st;
    if(!stat(filename, &st)) return st.st_size;
    return 0;
}



und zwar muss ich ihren rückgabe wert jetzt in ein std.stringstream bekommen


dies hier ist da beispiel wie ich es für textbasierte dateien habe

C++:
  std::stringstream str_str;
  str_str << req.answer_.size();



für binäre daten sollte es dann ungefähr so aussehen

C++:
  std::stringstream str_str_bin;
  str_str_bin << get_file_size(completpathfile.c_str());



ich hab es schon versucht aber ich bekomme immer nur ein sonderzeichen (großes U mit apostroph)

daher was muss ich tun um den rückgabewert zu konvertieren?

Dieser Post wurde am 14.07.2005 um 22:48 Uhr von Skippy editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
17.07.2005, 10:01 Uhr
Skippy



so habs rausgefunden

der fehler lag hier:


C++:
unsigned long get_file_size(const char *filename)
{
    struct stat st;
    if(!stat(filename, &st)) return st.st_size;
    return 0;
}



und zwar das ausrufezeichen in if(!stat
musste weg


das lustige daran war ich hatte es erst mit fopen -->ftell--->fclose gemacht
dann hatte ich durch zufall gesehen das in einem anderen project das mit stat() gemacht wurde

hab das abgeändert auf meine funktion
habe aber weil ich das auch als return wert brauche ihre zeile einfach übernommen
jedenfalls hab ich ihnen dann gestern nacht geschrieben das dort ein fehler ist
und heut morgen hatte ich ne email von denen sie probierten schon mehrere monate das zum laufen zu bekommen

warum er allerdings aus der 0 ein sonderzeichen gemacht hatt weis ich nicht
jetzt gibt er lustigerweise die auch 0 aus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
17.07.2005, 11:32 Uhr
Skippy



habe doch noch ein problem vorher rufe ich noch folgende
funktion auf


C++:
int does_file_exist(const char *filename)
{
    struct stat st;
    if(stat(filename, &st) || isDirectory(filename)) return FALSE;
    return TRUE;
}




die setzt dann


C++:
r->filetosend_  = "TRUE";



so mein rufe ich jetzt die größe der datei direkt ab

C++:
    s.SendLine("Content-Length: " + str_str_bin.str());  


klappt das

mache ich das allerdings so:


C++:
//     if (req.filetosend_=="TRUE")
//     {
     s.SendLine("Content-Length: " + str_str_bin.str());



klappt das nichtmehr und als dateigröße bekomme ich dann null zurück

bzw der server sendet dann Content-Lenght: 0
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: