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