Att skriva och läsa in ÅÄÖ i C programmering.

Trädvy Permalänk
Medlem
Registrerad
Okt 2016

Att skriva och läsa in ÅÄÖ i C programmering.

Hej!

Jag har för några månader sen påbörjat en seriös satsning att lära mig och utbilda mig i C programmering.

Jag har haft jätteproblem med att hitta lösningar på att kunna skriva ut ÅÄÖ i mina koder.
Jag har googlat och hittar massor med lösningar för att ändra teckentabeller etc. men dock inget specifikt för att kunna skriva eller läsa in åäöÅÄÖ i just C.

Jag vet att det finns massor med lösningar där ute. Tänkte att vi kunde samla alla dessa lösningar under en tråd.

Jag kan bidra med en lösning.

Jag kör på Windows 10.

Kompilerar i GNU i kommandotolken.

Jag skapar en c fil med teckentabell UTF-8(65001).

Min kommandotolk är inställ på teckentabell OEM-USA(437).

I början av koden måste jag inludera stdlib.h.

#include <stdlib.h>

I main skriver jag in detta för att ändra teckentabellen.

system("chcp 65001");

Jag lägger ett exempel på en kod.

/* Skriv ett program som skriver en tabell av multiplikationstabellen beroende på vilken siffra du skriver.*/ #include <stdio.h> #include <stdlib.h> // Inkludera stdlib.h int main() { system("chcp 65001"); // Skriv in detta för att ändra teckentabell. printf("Vänligen skriv in hur många uträkningar av MT du vill ha: "); int max; scanf("%d", &max); int rad = 0; int num; for(int i = 1; i <= max; i++){ for(int j = 1; j <= i; j++){ printf("%d ", i * j); } printf("\n"); } }

Trädvy Permalänk
Medlem
Plats
Sundsvall
Registrerad
Dec 2006

Nu var det 8 år sedan jag rörde C++, men då använde vi svtecken.h för att lösa det.
Googlade på det och hittade denna, vet inte om det är aktuellt längre.

http://ullvitorget.koping.se/~eib/gammalt/prog/svtecken.htm

Canon 70D | 2x Dell Ultrasharp 24" | i7 3770k | 16B | GTX 780

Trädvy Permalänk
Medlem
Registrerad
Okt 2016

@Florrpan: Jag har inte en aning om ifall det är aktuellt längre. Men det är strunt samma. Bara vi får in så många lösningar som möjligt. Förhoppningsvis funkar det för någon. För det har jag märkt då jag pendlar mellan en MacBook Pro och en Asus laptop att det skiljer en hel del. Även när det gäller från vilken texteditor man använder och hur man väljer att kompilera.

@Everyone
Så ös på med olika lösningar!

Trädvy Permalänk
Medlem
Registrerad
Okt 2016

Hittat några lösningar. För att bara skriva ut i strings och läsa krävs att koden innehåller.

Citat:

#include <stdio.h>
#include <locale.h> // Denna fil måste inkluderas.

int main(){

setlocale(LC_ALL, "sv_SE.UTF-8"); // Denna kod sätter all UNICODE till svenska.

}

Fast detta hjälper inte om man vill infoga ett tecken som Å, Ä eller Ö in i en char-variabel. För detta krävs lite mer.

Citat:

#include <stdio.h>
#include <wctype.h> // Denna fil måste inkluderas.
#include <locale.h>

int main(){

setlocale(LC_ALL, "");

wchar_t i = L'Ä'; // Skriv wchar_t istället för char. Och innan 'Ä' krävs ett stort L för att påvisa att vi ska skriva en Wide character.

printf("%lc\n", i); // Och för att skriva ut krävs %lc som står för long character.

}