IT - Ajutor in legatura cu C++
Posted: 02 Jul 2013, 12:22
Salut! Am o problema cu citirea unor valori dintr-un fisier.
Sa zicem ca x.dat este un fisier care contine urmatoarele caractere in baza 16(hexazecimale): \x41\x42\x43
urmatoarea secventa de cod citeste caracterul 0 ca fiind ", caracterul 0 ca fiind \, caracterul 1 -> x, caracterul 2 -> 4:
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int main(int argc, char **argv)
{
char buf[10];
ifstream g ("x.dat");
g>>std::hex>>buf;
cout<<buf;
g.close();
return 0;
}
Rezultat:
\x41\x42\x43
Daca declar char buf[]="\x41\x42\x43";
pe ecran imi arata: abc
So, ce trebuie sa fac ca sa-mi citeasca din fisier \x41 ca un caracter, nu ca trei caractere??
P.S. Folosesc codeblocks cu mingw
Sa zicem ca x.dat este un fisier care contine urmatoarele caractere in baza 16(hexazecimale): \x41\x42\x43
urmatoarea secventa de cod citeste caracterul 0 ca fiind ", caracterul 0 ca fiind \, caracterul 1 -> x, caracterul 2 -> 4:
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
int main(int argc, char **argv)
{
char buf[10];
ifstream g ("x.dat");
g>>std::hex>>buf;
cout<<buf;
g.close();
return 0;
}
Rezultat:
\x41\x42\x43
Daca declar char buf[]="\x41\x42\x43";
pe ecran imi arata: abc
So, ce trebuie sa fac ca sa-mi citeasca din fisier \x41 ca un caracter, nu ca trei caractere??
P.S. Folosesc codeblocks cu mingw