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
IT - Ajutor in legatura cu C++
Moderators: Moderator ajutator, Moderator
- skill +3
- Status: Offline
- Posts: 223
- Registered for: 12 years 1 month
- 12
- Status: Codrin Bradea.
- Cont Premium: Y0da1
- Location: Near Spawn, on world yuyu on my private JAR.
- Contact:

- skill 0
-
- Status: Offline
- Posts: 35
- Registered for: 13 years 10 months
- 13
Eu nu am mai lucrat demult in C# in modul in care ai ales tu citirea datelor nu o sa-ti permita ca "\x41" sa-l vada un singur caracter ...
Dar poti sa faci ca in timpul rularii programului faci conversia ...
Dar poti sa faci ca in timpul rularii programului faci conversia ...
Always have your stuff when you need it with Dropbox. 2GB account is free! https://db.tt/R3HuiXZk
- skill +3
- Status: Offline
- Posts: 223
- Registered for: 12 years 1 month
- 12
- Status: Codrin Bradea.
- Cont Premium: Y0da1
- Location: Near Spawn, on world yuyu on my private JAR.
- Contact:
Intr-o carte numita "Totul despre C/C++" scria ca poti face asta folosind nu stiu ce functie, in program.
Adica daca scrii:
printf <nu stiu ce functie> x41; iti arata ''A'' pe ecran... Si ma gandesc: daca exista o astfel de functi la citire/afisare, de ce nu o exista si la citire dintr-un fisier?
Apropo de conversie in timpul rularii; cum ar trebui sa fac asta? Folosind tot o functie de conversie, care e ceea ce caut deci....
Multumesc oricum!
Adica daca scrii:
printf <nu stiu ce functie> x41; iti arata ''A'' pe ecran... Si ma gandesc: daca exista o astfel de functi la citire/afisare, de ce nu o exista si la citire dintr-un fisier?
Apropo de conversie in timpul rularii; cum ar trebui sa fac asta? Folosind tot o functie de conversie, care e ceea ce caut deci....
Multumesc oricum!