Jeg har et problem med at få æøå fra getline(cin, …) ind i min output fil.
Se understående kode hvor det ikke virker når strengen får værdi gennem getline(cin, …), hvor der kommer andre tegn ud:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
// tjekker hvad Locale er sat til, sætter den og tjekker hvad den er blevet sat til.
cout << "Locale: " << setlocale(LC_ALL, NULL)<< endl;
setlocale(LC_ALL, "");
cout << "Locale: " << setlocale(LC_ALL, NULL)<< endl;
string newline;
getline(cin, newline);
cout << "Ofstream line: " << newline << endl;
ofstream File("ohhh.txt");
File << newline;
}
Men det virker når jeg giver strengen værdi direkte i koden, i stedet for med bruger input:
#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
// tjekker hvad Locale er sat til, sætter den og tjekker hvad den er blevet sat til.
cout << "Locale: " << setlocale(LC_ALL, NULL)<< endl;
setlocale(LC_ALL, "");
cout << "Locale: " << setlocale(LC_ALL, NULL)<< endl;
string newline;
newline = "æøå";
cout << "Ofstream line: " << newline << endl;
ofstream File("ohhh.txt");
File << newline;
}
Hvad er forskellen på strengene efter om de har modtaget deres værdi i koden eller ved at de bliver sat via input streamen?