#include <string> #include <cstring> #include #include <windows.h> #include <fstream> int main() { std::ifstream fichier("test.txt");//fichier a convertir if (!fichier) { std::cerr << "Error" << std::endl; return 1; } std::string monTexte; getline( fichier, monTexte ); //conversion du string en char size_t size = monTexte.size() + 1; char * buffer = new char[ size ]; strncpy( buffer, monTexte.c_str(), size ); //conversion CharToOem(buffer, buffer); //enregistrement std::ofstream fichier2("test2.txt",std::ios::app); //fichier converti if (!fichier2) { std::cerr << "Error" << std::endl; return 1; } fichier2.write(buffer, size); //libérer la mémoire delete [] buffer; return 0; }
flux.setCodec("UTF-8");
flux.setCodec("ISO-8859-1");
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionQTextStream flux2(&file2); flux2.setCodec("ISO-8859-1"); flux2 << "echo à" <<endl; file2.close();
echo …de même il y a trois point normalement
echo à
flux2.setCodec("CP437"); // ou flux2.setCodec(QCodePage437Codec);
flux2.setCodec("");
.setCodec("");
http://translate.google.fr/translate?hl=fr&sl=en&tl=fr&u=http%3A%2F%2Fdoc.qt.digia.com%2Fqt%2Fqtextstream.html&anno=2
Sets the codec for this stream to the QTextCodec for the encoding specified by codecName . Common values for codecName include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.
#include #include <string> #include <vector> #include #include <windows.h> std::string FormaterPourConsole(const std::string &src) { using std::vector; using std::string; using std::begin; using std::end; vector<char> v(src.size() + 1); // remplit v de '\0' avec espace pour un délimiteur CharToOem(src.c_str(), &v[0]); return string(begin(v), end(v)); } int main() { using std::cout; using std::endl; cout << FormaterPourConsole("Étonnant?") << endl; }
C:\Users\Georges\Desktop\testcomparaison\chartooem\chartooem\main.cpp||In function 'std::string FormaterPourConsole(const std::string&)':|
C:\Users\Georges\Desktop\testcomparaison\chartooem\chartooem\main.cpp|10|error: 'std::begin' has not been declared|
C:\Users\Georges\Desktop\testcomparaison\chartooem\chartooem\main.cpp|11|error: 'std::end' has not been declared|
C:\Users\Georges\Desktop\testcomparaison\chartooem\chartooem\main.cpp|14|error: 'begin' was not declared in this scope|
C:\Users\Georges\Desktop\testcomparaison\chartooem\chartooem\main.cpp|14|error: 'end' was not declared in this scope|
||Build finished: 4 errors, 0 warnings|
#include <string> #include <cstring> #include #include <windows.h> #include <fstream> int main() { using namespace std; ifstream fichier("test.txt", ios::in); //fichier a convertir string MonTexte; getline( fichier, MonTexte ); //conversion du string en char size_t size = MonTexte.size() + 1; char * buffer = new char[ size ]; strncpy( buffer, MonTexte.c_str(), size ); //conversion CharToOem(buffer, buffer); //enregistrement std::ofstream fichier2("test2.txt", ios::out | ios::app); //fichier converti fichier2 <<buffer<<endl; //libérer la mémoire delete [] buffer; //fermer les fichier fichier.close(); fichier2.close(); }
std::ofstream fichier2("test2.txt", ios::out | ios::app);
fichier2 <<buffer<<endl;
//fermer les fichier
fichier.close();
fichier2.close();
size_t size = MonTexte.size() + 1;
char * buffer = new char[ size ];
strncpy( buffer, MonTexte.c_str(), size );
CharToOem(buffer, buffer);
size_t size = monTexte.size() + 1; char* buffer = new char[size]; CharToOem(monTexte.c_str(), buffer); // Dans le cas ou CharToOem ne met pas de 0 terminal: buffer[size - 1] = 0; // Possiblement inutile.
#include <string> #include <cstring> #include #include <windows.h> #include <fstream> int main() { std::ifstream fichier("test.txt", std::ios::in); //fichier a convertir std::string monTexte; getline( fichier, monTexte ); //conversion du string en char size_t size = monTexte.size() + 1; char * buffer = new char[ size ]; strncpy( buffer, monTexte.c_str(), size ); //conversion CharToOem(buffer, buffer); //enregistrement std::ofstream fichier2("test2.txt",std::ios::app); //fichier converti fichier2.write(buffer, size); //libérer la mémoire delete [] buffer; }
size_t size = monTexte.size() + 1; char* buffer = new char[size]; CharToOem(monTexte.c_str(), buffer); // Dans le cas ou CharToOem ne met pas de 0 terminal: buffer[size - 1] = 0; // Possiblement inutile.
std::ifstream fichier("test.txt", std::ios::in);
std::ifstream fichier("test.txt"); if (!fichier) { std::cerr << "Error" << std::endl; return 1; }
sa te parais bon ?
#include <windows.h> #define ONEPAGE 4096 #define MEMDISPO (MEM_COMMIT | MEM_RESERVE) #define mcVirtualAlloc(N) VirtualAlloc(0, N, MEMDISPO, PAGE_READWRITE); #define mcVirtualFree(Addr) VirtualFree(Addr, 0, MEM_RELEASE); char szappname[] = "chrOem"; char szFL[] = "D:\\chrOem.txt"; void __fastcall myWinMain() { void *pmem; HANDLE hfl; UINT64 size; DWORD rw; LARGE_INTEGER li; DWORD flagMSG = 0x30; hfl = CreateFile(szFL, GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0); if(hfl == INVALID_HANDLE_VALUE) goto goMSG; if(!GetFileSizeEx(hfl, (PLARGE_INTEGER) &size)) goto closeFL; if(!size) goto closeFL; // FICHIER VIDE if(size > ONEPAGE*8) goto closeFL; // > 32 Ko, BIZZARE POUR UN BATCH // LECTURE ET ECRITURE SE FAIT SUR UN BUFFER ALIGNE SUR PAGE MEMOIRE // ON VEUT UN ZERO FINAL DE CHAINE POUR CharToOem() DONC size+1 pmem = mcVirtualAlloc(size + 1); if(!pmem) goto closeFL; ReadFile(hfl, pmem, (DWORD) size, &rw, 0); if(rw != (DWORD) size) goto relMEM; // ERREUR LECTURE CharToOem(pmem, pmem); li.QuadPart = 0; SetFilePointerEx(hfl, li, 0, FILE_BEGIN); WriteFile(hfl, pmem, (DWORD) size, &rw, 0); if(rw != (DWORD) size) goto relMEM; // ERREUR ECRITURE flagMSG = 0x40; // BOULOT EST FINI OK relMEM: mcVirtualFree(pmem); closeFL: CloseHandle(hfl); goMSG: MessageBox(0, szFL, szappname, flagMSG); ExitProcess(0); }