Új hozzászólás Aktív témák
-
alapz@j
tag
válasz
#68216320
#4915
üzenetére
Viszont végre jól működik a program, mert az 'á' megjelent - még ha helytelen kódolással is - a feldolgozott sztringben
Egyébként ebből is látszik, hogy ez inkább konzol (terminál) probléma, mert a default 852 kódlappal ugyanaz az exe nálam is megeszi a szó eleji á-t. -
Jester01
veterán
válasz
#68216320
#4894
üzenetére
A forrásfájl kódolása tetszőleges lehet és független a futásidejű kódolástól. Az aktuális locale beállításból jön, alapértelmezése pedig utf8. Persze meg is lehet adni a fordítónak, gcc esetén a -finput-charset kapcsolóval.
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
int main()
{
const wchar_t* text = L"árvíztűrő tükörfúrógép";
wchar_t buf[40];
setlocale(LC_ALL, "");
wprintf(L"Írd be, hogy %ls: ", text);
fgetws(buf, 40, stdin);
buf[wcslen(buf) - 1] = 0;
wprintf(L"Ezt írtad be: \"%ls\", %ls\n", buf,
wcscmp(text, buf) ? L"nem egyezik" : L"egyezik");
return 0;
}$ file test-utf8.c
test-utf8.c: C source, UTF-8 Unicode text
$ gcc -finput-charset=utf8 test-utf8.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezik
$ iconv -f utf8 -t iso8859-2 < test-utf8.c > test-latin2.c
$ gcc -finput-charset=iso8859-2 test-latin2.c
$ ./a.out
Írd be, hogy árvíztűrő tükörfúrógép: árvíztűrő tükörfúrógép
Ezt írtad be: "árvíztűrő tükörfúrógép", egyezikMégegyszer, röviden: a forrás tetszőleges kódlappal lehet, ha azt megmondod a fordítónak. Futásidőben pedig a setlocale megfelelő használata szükséges. Ennyi.
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- CMF Phone 1 - egy jó telefon
- Sweet.tv - internetes TV
- Milyen autót vegyek?
- Okosóra és okoskiegészítő topik
- Hosszú premier előzetest kapott az Arknights: Endfield
- Yepp: korlátlanság és streaming-modell a Yettel adatforradalma
- PROHARDVER! feedback: bugok, problémák, ötletek
- Nem lesz gyors megoldása a VGA-hiánynak az NVIDIA szerint
- alza vélemények - tapasztalatok
- Milyen program, ami...?
- További aktív témák...
- Dell Latitude 7280,12.5",FHD,i7-6600U,8GB DDR4, 256GB SSD,WIN11, 2 KAMERA
- GARANCIÁLIS, ÚJ ÁLLAPOT MacBook Air 15 M3 16GB 256GB SSD midnight (éjfekete )
- ASUS GeForce RTX 4080 16GB GDDR6X Noctua OC Edition
- Dell Latitude 7280,12.5",FHD,i7-6600U,8GB DDR4, 128GB SSD,WIN11, 2 KAMERA
- HP ProLiant DL360e G8 8xSFF 1U 2xE5-2450L (16 mag/32 szál), 144GB DDR3, iLO4, B120i, P410 1GB BBU
- iPhone 17 256 GB Black - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok - Számlás
- HIBÁTLAN iPhone 13 128GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS4243, 100% Akksi
- Amazon Kindle 10th Generation ébresztős tok
- GYÖNYÖRŰ iPhone 12 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS4601, 100% Akkumulátor
- AKCIÓS ! MacBook Pro 16" M1 Pro 32GB RAM 1TB SSD! 1 év garancia!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Egyébként ebből is látszik, hogy ez inkább konzol (terminál) probléma, mert a default 852 kódlappal ugyanaz az exe nálam is megeszi a szó eleji á-t.
