3 svar
65 visningar
Elfving 4
Postad: 11 jul 14:27

Utskrift på svenska med clocale

Tjena, försöker få min kod att skriva ut "Å, Ä, Ö" med <clocale> och bara vissa delar av koden visar "å ä ö" och om jag tar bort <clocale> så blir det tvärtom. T.ex Städer och Söka blir rätt med <clocale> men inte Övik och Umeå. Om jag tar bort <clocale> så blir det tvärtom, städer & söka blir fel men Övik & Umeå blir rätt... Jag missar förmodligen något extremt uppenbart men jag ser det inte..

Elfving 4
Postad: 11 jul 14:28 Redigerad: 11 jul 14:29

Kod :

#include <iostream>
#include <string>
#include <clocale>
using namespace std;

class stad {
public:
	string namn;
	int temp;

	string ToString() {
		return "Stad: " + namn + ", Temperatur: " + to_string(temp);
	}
};

int linsok(stad stader[], int n, int soktemp) {
	for (int i = 0; i < n; i++) {
		if (stader[i].temp == soktemp) {
			return i;
		}
	}
	return -1;
}

void bubblesort(stad stader[], int n) {
	for (int i = 0; i < n - 1; i++) {
		for (int j = 0; j < n - i - 1; j++) {
			if (stader[j].temp > stader[j + 1].temp) {
				swap(stader[j], stader[j + 1]);
			}
		}
	}
}

int main() {

	setlocale(LC_ALL, "Swedish_Sweden");
	
	stad stader[4];
	for (int i = 0; i < 4; i++) {
		cout << "Ange stadens namn: ";
		cin >> stader[i].namn;
		cout << "Ange stadens temperatur: ";
		cin >> stader[i].temp;
		cout << "---------------------------" << endl;
		if (stader[i].temp <= -60 || stader[i].temp >= 60) {
			cout << "Ogiltig temperatur. Ange temperatur mellan -60 och 60." << endl;
			i--;
		}
	}

	bubblesort(stader, 4);

	

	cout << "Städer sorterade efter temperatur: " << endl;
	cout << "---------------------------" << endl;
	for (int i = 0; i < 4; i++) {
		cout << stader[i].ToString() << endl;
	}


	int soktemp;
	cout << "---------------------------" << endl;
	cout << "Ange en temperatur att söka efter: " << endl;
	cin >> soktemp;

	int index = linsok(stader, 4, soktemp);
	if (index != -1) {
		cout << "Staden med temperatur " << soktemp << " Hittades på index " << index << endl;
	} 
	else {
		cout << "Ingen stad med temperatur " << soktemp << " hittades. " << endl;
	}

	return 0;
}

Kanske detta hjälper: https://stackoverflow.com/questions/51479116/changing-locale-to-swedish

anders_k 237
Postad: 12 jul 07:22 Redigerad: 12 jul 17:35

Prova detta istället 

setlocale(LC_ALL, "sv-SE"); // sv_SE verkar fungera också

 

Svara Avbryt
Close