Zmienne typu string jako parametry OemToChar
Ostatnio zmodyfikowano 2013-05-22 13:28
Berux Temat założony przez niniejszego użytkownika |
Zmienne typu string jako parametry OemToChar » 2013-05-21 14:00:26 Witam. Piszę sobie pewien program (nie powiem jaki :P) i muszę zapisać to, co napisał użytkownik do pliku tekstowego. Wszystko jest ok, dopóki użytkownik nie wpisze polskich znaków. Szukałem trochę w google i dowiedziałem się, że powinno się użyć funkcji OemToChar. I teraz moje pytanie: ta funkcja przyjmuje jako argumenty zmienne typu char, a ja potrzebuję go użyć na tablicy string. Oto kawałek kodu: std::string dane[ 5 ];
getline( cin, dane[ 0 ] ); OemToChar( dane, dane );
plik << dane[ 0 ];
Oraz błąd jaki otrzymuję: cannot convert 'std::string*' to 'const CHAR*' for argument '1' to 'BOOL OemToCharA(const CHAR*, CHAR*)'|
Z góry dzięki za pomoc. |
|
cyklopek11 |
» 2013-05-21 14:23:56 Zainteresuj się metodą klasy std::string c_str().
PS. I tak wszyscy się domyślają do czego ma służyć ten program :-) |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-05-21 14:36:42 Próbowałem. Oto kod: getline( cin, dane[ 0 ] ); OemToChar( dane.c_str(), dane.c_str() );
plik << dane[ 0 ];
I błąd: error: request for member 'c_str' in 'dane', which is of non-class type 'std::string [5]'| error: request for member 'c_str' in 'dane', which is of non-class type 'std::string [5]'|
PS To według Ciebie do czego może służyć? /edit: Jak wywołać przejście do nowej linii w pliku tekstowym, tak żeby następne wprowadzone dane były już w nowej linii. |
|
pekfos |
» 2013-05-21 14:52:06 Nie możesz tego użyć na tablicy. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-05-21 14:56:09 Jak zmienię, żeby nie była to tablica tylko zwykły string to i tak są błędy: error: invalid conversion from 'const char*' to 'CHAR*'| error: initializing argument 2 of 'BOOL OemToCharA(const CHAR*, CHAR*)'|
|
|
pekfos |
» 2013-05-21 15:15:28 Użyj innego bufora lub rzutuj na typ bez const. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2013-05-22 11:34:05 |
|
cyklopek11 |
» 2013-05-22 13:15:22 Użyj innego bufora Jakiego na przykład?
|
Jako drugi argument funkcji np: ...
char * bufor = new char[ duzomiejsca ];
OemToChar( dane[ 0 ].c_str(), bufor );
|
|
« 1 » 2 |