
- C++ Library - Home
- C++ Library - <fstream>
- C++ Library - <iomanip>
- C++ Library - <ios>
- C++ Library - <iosfwd>
- C++ Library - <iostream>
- C++ Library - <istream>
- C++ Library - <ostream>
- C++ Library - <sstream>
- C++ Library - <streambuf>
- C++ Library - <atomic>
- C++ Library - <complex>
- C++ Library - <exception>
- C++ Library - <functional>
- C++ Library - <limits>
- C++ Library - <locale>
- C++ Library - <memory>
- C++ Library - <new>
- C++ Library - <numeric>
- C++ Library - <regex>
- C++ Library - <stdexcept>
- C++ Library - <string>
- C++ Library - <thread>
- C++ Library - <tuple>
- C++ Library - <typeinfo>
- C++ Library - <utility>
- C++ Library - <valarray>
- The C++ STL Library
- C++ Library - <array>
- C++ Library - <bitset>
- C++ Library - <deque>
- C++ Library - <forward_list>
- C++ Library - <list>
- C++ Library - <map>
- C++ Library - <multimap>
- C++ Library - <queue>
- C++ Library - <priority_queue>
- C++ Library - <set>
- C++ Library - <stack>
- C++ Library - <unordered_map>
- C++ Library - <unordered_set>
- C++ Library - <vector>
- C++ Library - <algorithm>
- C++ Library - <iterator>
- The C++ Advanced Library
- C++ Library - <any>
- C++ Library - <barrier>
- C++ Library - <bit>
- C++ Library - <chrono>
- C++ Library - <cinttypes>
- C++ Library - <clocale>
- C++ Library - <condition_variable>
- C++ Library - <coroutine>
- C++ Library - <cstdlib>
- C++ Library - <cstring>
- C++ Library - <cuchar>
- C++ Library - <charconv>
- C++ Library - <cfenv>
- C++ Library - <cmath>
- C++ Library - <ccomplex>
- C++ Library - <expected>
- C++ Library - <format>
- C++ Library - <future>
- C++ Library - <flat_set>
- C++ Library - <flat_map>
- C++ Library - <filesystem>
- C++ Library - <generator>
- C++ Library - <initializer_list>
- C++ Library - <latch>
- C++ Library - <memory_resource>
- C++ Library - <mutex>
- C++ Library - <mdspan>
- C++ Library - <optional>
- C++ Library - <print>
- C++ Library - <ratio>
- C++ Library - <scoped_allocator>
- C++ Library - <semaphore>
- C++ Library - <source_location>
- C++ Library - <span>
- C++ Library - <spanstream>
- C++ Library - <stacktrace>
- C++ Library - <stop_token>
- C++ Library - <syncstream>
- C++ Library - <system_error>
- C++ Library - <string_view>
- C++ Library - <stdatomic>
- C++ Library - <variant>
- C++ STL Library Cheat Sheet
- C++ STL - Cheat Sheet
- C++ Programming Resources
- C++ Programming Tutorial
- C++ Useful Resources
- C++ Discussion
C++ IOS::narrow() function
The C++ std::ios::narrow() function is a utility for converting wide character strings (wchar_t*) to the narrow character strings (char*). It is used in conjunction with the ios class, which handles input/output operations. It takes a wide character string and a default character (to handle cases where conversion is not possible) and returns a narrow character string.
Syntax
Following is the syntax for std::ios::narrow() function.
char narrow (char c, char dfault) const;
Parameters
- c − It indicates the character to be narrowed.
- dfault − It indicates the character to be returned if c has no standard equivalent.
Return Value
It returns the narrow character of the string Otherwise, it returns default character.
Exceptions
If an exception is thrown, there are no changes in the stream.
Data races
Accesses the stream object.
Concurrent access to the same stream object may cause data races.
Example
In the following example, we are going to consider the basic wide to narrow conversion.
#include <iostream> #include <string> #include <locale> #include <codecvt> int main() { std::wstring x = L"Welcome To, TurorialsPoint!"; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::string y = converter.to_bytes(x); std::cout << "Result : " << y << std::endl; return 0; }
Output
Output of the above code is as follows −
Result : Welcome To, TurorialsPoint!
Example
Consider the following example, where we are going to perform the empty wide string conversion and observing the output.
#include <iostream> #include <string> #include <locale> #include <codecvt> int main() { std::wstring x = L""; std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; std::string y = converter.to_bytes(x); std::cout << "Result : '" << y << "'" << std::endl; return 0; }
Output
Following is the output of the above code −
Result : ''