Hello ja hyvää Itsenäisyyspäivää,
kuinka tarkistan c++:lla tiedoston merkki-koodauksen ja rivien lopetuksen tyypin.
Haluasin luettavien ja kirjoitettavien tiedostojen olevan encoding:UTF-8 ja line-ending:UNIX/LINUX
Siis avaan lukemista ja kirjoittamista varten tekstitiedoston:
Tässä koodia lyhennettynä:
// avaus
fstream pFile;
pFile.open("tiedosto.ini", ios_base::in|ios_base_out);
// tiedostoon luku rivi kerrallaan silmukassa
string readBuf;
while(pFile.peek()!=EOF)
{
getline(pFile, readBuf);
// .. tarvittavat merkkijono muokkaukset stringille, trimmaus, merkkien poistoa ja muuta vastaavaa jne...
}
Jäljenpänä sitten käsittelen luettua dataa haluamallani tavalla…
Rivien lopetuksen tyypin voinen tarkistaa tuossa lukusilmukassa tarkistelemalla readBufferin viimeistä kahta merkkiä eli niiden on oltava \n?
-Kiittäen Kingpin