C++ IOS::narrow() 函数



C++ 的std::ios::narrow()函数是一个用于将宽字符字符串 (wchar_t*) 转换为窄字符字符串 (char*) 的实用程序。它与处理输入/输出操作的 ios 类一起使用。它接收一个宽字符字符串和一个默认字符(用于处理无法进行转换的情况),并返回一个窄字符字符串。

语法

以下是 std::ios::narrow() 函数的语法。

char narrow (char c, char dfault) const;

参数

  • c − 表示要缩窄的字符。
  • dfault − 如果 c 没有标准等价物,则表示要返回的字符。

返回值

它返回字符串的窄字符,否则返回默认字符。

异常

如果抛出异常,则流中没有任何更改。

数据竞争

访问流对象。

同时访问同一个流对象可能会导致数据竞争。

示例

在下面的示例中,我们将考虑基本的宽字符到窄字符的转换。

#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;
}

输出

以上代码的输出如下:

Result : Welcome To, TurorialsPoint!

示例

考虑以下示例,我们将执行空宽字符串转换并观察输出。

#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;
}

输出

以下是以上代码的输出:

Result : ''
ios.htm
广告