ΠΠ°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» <locale> ΠΈΠΌΠ΅Π΅Ρ ΡΡΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ. ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΡΡΠΎ ΠΊΠ»Π°ΡΡ locale (Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ). ΠΠ½ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠ΅ Π² C++ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠΎΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠΉ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΡΠ°ΠΌΡΠΌΠΈ ΠΌΠ°Π»Π΅Π½ΡΠΊΠΈΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠ²Π»ΡΡΡΡΡ ΠΊΠ»Π°ΡΡΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠ΅ ΡΠ°ΡΠ΅ΡΠ°ΠΌΠΈ (facets). ΠΡΠΈΠΌΠ΅ΡΠΎΠΌ ΡΠ°ΡΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ time_put, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ Π΄Π°ΡΡ Π² ΠΏΠΎΡΠΎΠΊ. Π-ΡΡΠ΅ΡΡΠΈΡ , ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°ΡΠ΅Ρ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ ΡΠ°ΡΠ΅ΡΡ Π² ΠΎΠ΄Π½Ρ Π³ΡΡΠΏΠΏΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΠ΅ΡΡΡΡ ΡΠΈΡΠ»ΠΎΠ²Π°Ρ, Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΈ Π΄Π΅Π½Π΅ΠΆΠ½Π°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ (ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΡΠΏΠΎΠΌΡΠ½ΡΡΡΠΉ ΠΌΠ½ΠΎΡ ΡΠ°ΡΠ΅Ρ time_put ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ). Π― ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠΏΠΈΡΡΠ²Π°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·Ρ ΠΎΠ½ΠΈ ΠΏΡΠΈΠ½ΠΎΡΡΡ ΠΏΡΠΈ ΠΎΡΡΡΠ΅ΡΡΠ²Π»Π΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ·ΠΎΡΡΠ΅Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π° C++ ΠΈΠΌΠ΅Π΅Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄Π½Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (ΠΎΠ½Π° ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Β«Π‘Β», ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π΅Π΅ Π½Π° ΡΡΠΎ- Π½ΠΈΠ±ΡΠ΄Ρ Π΄ΡΡΠ³ΠΎΠ΅. ΠΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² locale ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, Ρ ΠΎΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Β«ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°Π΅ΠΌΠΎΠΉΒ» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ.
Π Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΏΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΏΠΎΡΠΎΠΊΠΎΠ². ΠΡΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ Π½Π°ΡΡΠΎΡΡΠ΅ΠΉ Π³Π»Π°Π²Ρ.
13.1. ΠΠ΅ΡΡΠΊΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Unicode
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ ΠΆΠ΅ΡΡΠΊΠΎ Π·Π°ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ Unicode, Ρ.Π΅. ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΠ°ΡΠΈΠ½Π°ΠΉΡΠ΅ ΡΡΡΠΎΠΊΡ Ρ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° L ΠΈ Π·Π°ΡΠ΅ΠΌ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π² ΡΠ²ΠΎΠ΅ΠΌ ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ², ΠΊΠ°ΠΊ Π²Ρ ΡΡΠΎ ΠΎΠ±ΡΡΠ½ΠΎ Π΄Π΅Π»Π°Π΅ΡΠ΅ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΡΡΠΎΠΊ, ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠ΅ Π½ΡΠΆΠ½ΡΠΉ Π²Π°ΠΌ ΡΠΈΠΌΠ²ΠΎΠ» Π² ΠΊΠΎΠ΄Π΅ Unicode. ΠΡΠΈΠΌΠ΅Ρ 13.1 Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΠΎΠ±Π° ΡΠΏΠΎΡΠΎΠ±Π° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΡΡΠΎΠΊ.
ΠΡΠΈΠΌΠ΅Ρ 13.1. ΠΠ΅ΡΡΠΊΠΎΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Unicode
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
// Π‘ΠΎΠ·Π΄Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ ΠΊΠΎΠ΄Π° Unicode
wstring ws1 = L"Infinity: \u221E";
wstring ws2 = L"Euro: β¬"
wchar_t w[] = L"Infinity: \u221E";
wofstream out("tmp\\unicode.txt");
out << ws2 << endl;
wcout << ws2 << endl;
}
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠΉ ΠΏΡΠΈ ΠΆΠ΅ΡΡΠΊΠΎΠΌ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΡΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅ Unicode, ΡΠ²ΡΠ·Π°Π½ Ρ Π²ΡΠ±ΠΎΡΠΎΠΌ ΡΠΏΠΎΡΠΎΠ±Π° Π²Π²ΠΎΠ΄Π° ΡΡΡΠΎΠΊΠΈ Π² ΡΠ΅Π΄Π°ΠΊΡΠΎΡΠ΅ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ². Π C++ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΠΈΠΏ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² wchar_t, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ Ρ ΡΠ°Π½ΠΈΡΡ ΡΡΡΠΎΠΊΠΈ Π² ΠΊΠΎΠ΄Π΅ Unicode. Π’ΠΎΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ wchar_t Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΡΠΌΠ°Ρ UTF-32. ΠΠ»Π°ΡΡ wstring ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ Π² <string> ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΈΠΏΠ° wchar_t, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΡΠΎΠΌΡ ΠΊΠ°ΠΊ ΠΊΠ»Π°ΡΡ string ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² ΡΠΈΠΏΠ° char. (Π‘ΡΡΠΎΠ³ΠΎ Π³ΠΎΠ²ΠΎΡΡ, ΡΠΈΠΏ wstring ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ typedef ΠΊΠ°ΠΊ basic_string<wchar_t>.)
Π‘Π°ΠΌΡΠΉ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± Π²Π²ΠΎΠ΄Π° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΊΠΎΠ΄Π΅ Unicode β ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ΅ΡΠΈΠΊΡΠ° L ΠΏΠ΅ΡΠ΅Π΄ ΡΡΡΠΎΠΊΠΎΠ²ΡΠΌ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 13.1.
wstring ws1 = L"Infinity, \u2210"; // ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΊΠΎΠ΄
wstring ws2 = L"Euro: β¬"; // ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠΈΠΌΠ²ΠΎΠ»
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² ΠΏΠΎΡΠΎΠΊ Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ².
wcout << ws1 << endl; // wcout - Π²Π΅ΡΡΠΈΡ cout Π΄Π»Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ²
ΠΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΊΠΆΠ΅ Π² ΡΠ°ΠΉΠ»Ρ:
wofstream out("tmp\\unicode.txt");
out << ws2 << endl;
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ Π½Π°ΠΈΠ±ΠΎΠ»ΡΡΡΡ Π»ΠΎΠ²ΠΊΠΎΡΡΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΡΡ Π½Π΅ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π² Π²Π°ΡΠΈ ΠΈΡΡ ΠΎΠ΄Π½ΡΠ΅ ΡΠ°ΠΉΠ»Ρ, Π° ΠΏΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΡΠΈΠΏΠ° ΡΠΈΠΌΠ²ΠΎΠ»ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌΡΡ ΠΈΠ· Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ HTTP, ΠΈΠ· ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΠΈ Ρ.Π΄., ΡΡΠΎ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π·Π° ΡΠ°ΠΌΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ° C++. Π‘ΡΠ°Π½Π΄Π°ΡΡ C++ Π½Π΅ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΈΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΊΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΈΡΡ ΠΎΠ΄Π½ΡΡ ΡΠ°ΠΉΠ»ΠΎΠ² Π»ΡΠ±ΡΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΊΡ, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, 96 ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ·ΡΠΊΠ΅ Π‘++. ΠΠ»Ρ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡΠΈΡ Π² ΡΡΠΎΡ Π½Π°Π±ΠΎΡ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ ΠΎΡΠ½ΠΎΠ²Π½ΡΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ escape-ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠ΅ΠΉ \uXXXX ΠΈΠ»ΠΈ \UXXXXXXXX, Π³Π΄Π΅ X β ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠ΅ΡΠΈΡΠ½Π°Ρ ΡΠΈΡΡΠ°.
13.2. ΠΠ°ΠΏΠΈΡΡ ΠΈ ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠ΅Π»
Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΠΈΡΠ»ΠΎ Π² ΠΏΠΎΡΠΎΠΊ Π² ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΌΠ΅ΡΡΠ½ΡΠΌΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ.
Π Π΅ΡΠ΅Π½ΠΈΠ΅ΠΠ°ΠΊΡΠ΅ΠΏΠΈΡΠ΅ (imbue) ΡΠ΅ΠΊΡΡΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠΌ, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΠ΅ΡΡ ΠΏΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅, ΠΈ Π·Π°ΠΏΠΈΡΠΈΡΠ΅ Π² Π½Π΅Π³ΠΎ ΡΠΈΡΠ»Π°, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 13.2, ΠΈΠ»ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π·Π°ΡΠ΅ΠΌ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠΎΠΊ. ΠΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠΈ.
ΠΡΠΈΠΌΠ΅Ρ 13.2. ΠΠ°ΠΏΠΈΡΡ ΡΠΈΡΠ΅Π» Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
#include <iostream>
#include <locale>
#include <string>
using namespace std;
// ΠΠ° Π·Π°Π΄Π½Π΅ΠΌ ΠΏΠ»Π°Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ ΡΡΠ΅Π΄ΠΎΠΉ
// ΡΡΠ°ΠΏΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ "Π‘". ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΅Π΅
// Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ locale::global(const locale&).
int main() {
locale loc(""); // Π‘ΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠΏΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ
cout << "Locale name = " << loc.name() << endl;
cout.imbue(loc); // Π£Π²Π΅Π΄ΠΎΠΌΠΈΡΡ cout ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
// ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ
cout << "pi in locale " << cout.getloc().name() << " is << 3.14 << endl;
}
ΠΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΡΠΈΠΌΠ΅Ρ 13.2 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π»Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΈΡΠ»Π° Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π² Π΄Π²Π° ΡΡΠ°ΠΏΠ°: ΡΠ½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΊΠ»Π°ΡΡΠ° locale, ΠΊΠΎΡΠΎΡΡΠΉ Π·Π°ΡΠ΅ΠΌ Π·Π°ΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΡΡΡ Π·Π° ΠΏΠΎΡΠΎΠΊΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ imbue.
Π‘Π½Π°ΡΠ°Π»Π° Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ 13.2 ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ loc, ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠΏΠΈΠ΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π΅Π»Π°ΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ locale, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ (Π° Π½Π΅ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ).
locale loc("");
ΠΡΠ»ΠΈΡΠΈΠ΅ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅, Π½ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅, ΠΈ Ρ Π²ΡΠΊΠΎΡΠ΅ Π²Π΅ΡΠ½ΡΡΡ ΠΊ Π½Π΅ΠΌΡ. ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π·Π΄Π΅ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° locale ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΊΠΎΠΏΠΈΡ Β«ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈΒ», ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ, Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΠΈΠ½Π° ΡΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠ³ΠΎ ΡΠ·ΡΠΊΠ°, ΡΡΠ½ΠΊΡΠΈΡ locale::name() ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ Β«en_USΒ», Β«English_United States.1252Β», Β«english-americanΒ» ΠΈ Ρ.Π΄. Π Π΅Π°Π»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ, Π° ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ C++ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ β Β«CΒ»-Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ.
ΠΠ»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° locale Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠΎΠΏΠΈΡ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΡΡΠΊΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π½Π°ΠΏΠΈΡΠ°Π½Π½Π°Ρ Π½Π° Π‘++, ΠΈΠΌΠ΅Π΅Ρ ΠΎΠ΄ΠΈΠ½ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ locale (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠ°ΠΊ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π³Π΄Π΅-ΡΠΎ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ ΡΡΠ°ΠΏΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ; Π΄Π΅ΡΠ°Π»ΠΈ Π΅Π³ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΉ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ). ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π‘, ΠΈ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ Π΅Π΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ locale::global(locale& loc). ΠΠΎΠ³Π΄Π° ΠΏΠΎΡΠΎΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡΡΡ, ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ; ΡΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ cin, cout, cerr, wcin, wcout ΠΈ wcerr ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π‘, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΅Π΅ ΠΌΠ΅Π½ΡΡΡ, Π΅ΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΈΠ½ΡΠ»ΠΎΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΠΌ, ΠΏΡΠΈΠ½ΡΡΡΠΌ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΌΠ΅ΡΡΠ½ΠΎΡΡΠΈ.
ΠΠΌΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ Π½Π΅ ΡΡΠ°Π½Π΄Π°ΡΡΠΈΠ·ΠΎΠ²Π°Π½Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΡΠ½ΠΎ ΠΎΠ½ΠΈ ΠΈΠΌΠ΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠΎΡΠΌΠ°Ρ.
<ΡΠ·ΡΠΊ>_<ΡΡΡΠ°Π½Π°>.<ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ_ΡΡΡΠ°Π½ΠΈΡΠ°>
Π―Π·ΡΠΊ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«SpanishΒ», ΠΈΠ»ΠΈ Π΄Π²ΡΡ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«spΒ»; ΡΡΡΠ°Π½Π° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«ColombiaΒ», ΠΈΠ»ΠΈ Π΄Π²ΡΡ Π±ΡΠΊΠ²Π΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΡΠ°Π½Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Β«Π‘ΠΒ», Π° ΠΊΠΎΠ΄ΠΎΠ²Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° Π·Π°Π΄Π°Π΅ΡΡΡ ΡΠ²ΠΎΠΈΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ 1252. ΠΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΊΠ°Π·Π°Π½ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ·ΡΠΊ. ΠΠΎΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅, ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΡΡΠΎΠ±Ρ ΠΏΠΎΡΡΠ²ΡΡΠ²ΠΎΠ²Π°ΡΡ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΠΎΡΠ»ΠΈΡΠΈΠΉ ΠΈΠΌΠ΅Π½ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΡΠ°Π·Π½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ². ΠΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ ΠΈΠΌΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ runtime_error. ΠΡΠΈΠΌΠ΅Ρ 13.3 ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π²Π°ΡΡ ΠΈΠΌΠ΅Π½Π° Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ 13.3. Π―Π²Π½ΠΎΠ΅ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΉ
#include <iostream>
#include <fstream>
#include <locale>
#include <string>