C++ mit dev-c++, Zeichnsatz in der Konsole
Tom
- programmiertechnik
Hello,
z.Zt. habe ich C++ mit Dev-C++ am Wickel und weiß leioder nicht, wie ich bei Konsolenanwendungen den Zeichnsatz für die Ausgabe besimmten kann.
Ich weiß leider auch gar nicht, an welcher Stelle ich schrauben muss, denn die Ausgabe, die durch
system("PAUSE")
erzeugt wird, zeigt die Umlaute ordnungsgemäß an, nur die, die durch
cout << text
verursacht wird, zeigt nicht richtig an. In welchem Format speichert DEV-C++ die Daten ab? Wer kennt sich mit dem Tool aus?
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
z.Zt. habe ich C++ mit Dev-C++ am Wickel
Welchen Compiler verwendest Du zusammen mit Dev-C++?
Welche Version von Dev-C++ verwendest Du?
Grüsse
Solkar
Hello,
Welchen Compiler verwendest Du zusammen mit Dev-C++?
gcc version 3.4.2 (mingw-special)
Welche Version von Dev-C++ verwendest Du?
Version 4.9.9.2
zumindest auf meinem System hier "zuhause".
Aber im College sollte es genauso sein.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
Welche Version von Dev-C++ verwendest Du?
Version 4.9.9.2Welchen Compiler verwendest Du zusammen mit Dev-C++?
gcc version 3.4.2 (mingw-special)
g++ (GCC) 3.4.4 (mingw special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Meine instalierten Versionen sind andere, aber wenn das hier
#include <tchar.h>
#include <windows.h>
#include <iostream>
int main(void)
{
int iRetVal = -1;
LPSTR lpszString = "äöüÄÖÜß";
DWORD dwStrSize = (DWORD)_tcslen((LPTSTR)lpszString);
LPSTR lpszDst = (LPSTR)::LocalAlloc(LPTR, (dwStrSize+1) * sizeof(char));
DWORD dwWritten = 0;
std::cout << "Vor CharToOemBuff():\t" << lpszString << std::endl;
if (NULL != lpszDst) {
if (::CharToOemBuff((LPCTSTR)lpszString, lpszDst, dwStrSize)) {
std::cout << "Nach CharToOemBuff():\t" << lpszDst << std::endl;
iRetVal = 0;
} else {
#pragma message(__LOC__ ": Durch FormatMessage(...) und GetLastError() ersetzen!")
std::cerr << "Fehler: Konvertierung fehlgeschlagen!" << std::endl;
}
} else {
#pragma message(__LOC__ ": Durch FormatMessage(...) und GetLastError() ersetzen!")
std::cerr << "Fehler: Allokation fehlgeschlagen!" << std::endl;
}
LocalFree(lpszDst);
return iRetVal;
}
sich kompilieren und linken lässt; also insbesondere <windows.h> und die libs dazu installiert sind, sollte des Code das Problem zumindest für NICHT-UNICODE-Versionen lösen.
Grüsse
Solkar