Poprawne wczytanie polskich znakow przy pomocy wstring i getline, oraz ich kod w ASCII

0

Mam takie oto zadanie http://pl.spoj.com/problems/PROGC02/ wszystkie znaki mi zlicza poprawnie, oprócz polskich znaków, tak jak są tam pokazane w przykładzie na spoj'u. Moje pytanie brzmi, jak je poprawnie zliczyć w c++, aktualnie próbuje z wstring i wcin ale po ich wpisaniu, program od razu mi się wyłącza? Może to jakiś problem z getline? Jaki będą mieć poprawny kod w ASCII?. Na stronie w przykładzie są kody takie jak poniżej i domyślam się, że są one dla polskich znaków:

179 2
195 2
196 2

Jak ugryźć to zadanie, z czego skorzystać?
Aktualnie mam taki oto kodzik:

 
#include <iostream>
#include <string>
#include <map>

using namespace std;

int main() {
	std::ios_base::sync_with_stdio(0);
	
	wstring tekst;
	map<int, int> results;
	int breakLoop = 0;
	
	while( getline(wcin, tekst) ) {  // jak tutaj uzyc poprawnie getline z wstring ??
		tekst += '\n';
		for(int i = 0; i < tekst.length(); ++i) {
			results[(int)tekst[i]] += 1;
		}

                // tymi dwiema linijkami sie nie przejmowac, one tylko maja mi przerwac petle
		breakLoop += 1;
		if(breakLoop > 2) break;
	}
	
	for(map<int, int>::iterator it = results.begin(); it != results.end(); ++it) {
		cout << (*it).first << " " << (*it).second << endl;
	}
  
	return 0;
}

dodanie znacznika <code> - Furious Programming

0

Zadanie jest bez sensu, bo mówi o kodach ASCII, które jest kodowaniem 7-bitowym (wartości 0-127, ósmy bit zerowy) i nie ma w nim polskich liter, a w danych nagle są.
Jeśli SPOJ działa na Linuksie (a to jest bardzo prawdopodobne) to kodowaniem na serwerze jest zapewne UTF-8, w którym polskie znaki zajmują nie jeden, ale dwa bajty.

Jak to traktować na potrzeby zadania?

Zadanie jest bez sensu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1