Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wstawienie znaku do zmiennej typu string C++

Ostatnio zmodyfikowano 2014-09-10 19:26
Autor Wiadomość
pekfos
» 2014-09-07 23:05:45
Żeby zapisać plik do określonej lokalizacji w C++ potrzebuję ścieżki z podwójnymi slashami.
Nieprawda. Wystarczy pojedynczy slash, ale backslashe muszą być 2, bo backslash to znak specjalny w języku C++ - nie w informatyce ogólnie. Nie rozróżniasz najwyraźniej kodu C++, od skompilowanego programu napisanego w C++, czy dowolnym innym jezyku. W kodzie C++ piszesz \\ i po skompilowaniu otrzymujesz \ , tak samo jak \n jest zmieniane na znak nowej linii.
C/C++
#include <iostream>
#include <fstream>
#include <string>


int main()
{
    std::string path = "asd\\123.txt";
    std::ofstream ofs( path );
   
    std::cout << path << ' ' << ofs.fail();
}
asd\123.txt 0
P-116744
miecio1990
» 2014-09-08 10:30:22
wcale nie musisz zamieniac kazdego "\" na "\\". Mozesz po prostu zamieniec "\" -> "/" i problem z glowy. nie musisz wtedy lokowac dodatkowej pamieci na dodatkowe znaki ani nic w tym stylu. nic prostszego nie przychodzi mi do glowy
P-116745
Kefirek
Temat założony przez niniejszego użytkownika
» 2014-09-08 18:37:52
Sorry Pekfos, ale pisząc o slashu tak naprawdę miałem na myśli backslasha stąd te zamieszanie i nieporozumienie.
Do miecio1990 - no tak jeżeli zamienię backslasha na slasha w path to będzie prostsze.
Pozdrawiam i Sorry za zamieszanie
P-116764
skovv
» 2014-09-08 19:55:03
A nie myślałeś nad
int main( int argc, char * argv[] )
?
P-116768
Kefirek
Temat założony przez niniejszego użytkownika
» 2014-09-09 20:50:14
Ja piszę w Builder C++, i main function is : __fastcall TfrmKlient::TfrmKlient(TComponent* Owner)  : TForm(Owner)
Pozdrawiam
      
P-116820
Kefirek
Temat założony przez niniejszego użytkownika
» 2014-09-10 19:26:25
Poniższy kod zamienia backslasha na slasha:
C/C++
CreateDir( nazwaFolderu.c_str() );
String dir = ExtractFileDir( Application->ExeName );
String path = ExtractFilePath( Application->ExeName );
string d = dir.c_str();
string p = path.c_str();
for( int i = 0; i < dir.Length(); i++ )
{
    if( d[ i ] == '\\' )
         d[ i ] = '/';
   
}
edtNazwa->Text = d.c_str();

Pozdrawiam
P-116853
1 « 2 »
Poprzednia strona Strona 2 z 2