C库中的wprintf()和wscanf

如果要处理宽字符,则不能使用printf()和scanf()函数。输入和输出C宽字符串有不同的函数。

null
  1. wprintf(): 函数的作用是:将格式指向的宽字符串写入stdout。宽字符串格式可能包含以%开头的格式说明符,这些说明符由作为附加参数传递给wprintf()函数的变量值替换。

    语法:

    int wprintf (const wchar_t* format, ...);

    参数:

    • 格式: 指向写入标准输出的以null结尾的宽字符串的指针。它由宽字符和以%开头的可选格式说明符组成。格式说明符由格式后面的相应变量的值替换。
    • … : 指定要打印的数据的其他附加参数。它们按照格式说明符的顺序出现。这些参数的数量至少应与格式说明符中指定的值的数量相同。函数会忽略其他参数。
    • 返回值: 如果成功,wprintf()函数将返回写入的字符数。失败时返回负值。如果成功,wprintf()函数将返回写入的字符数。 失败时返回负值。

    // C Program to show the wprintf () function.
    #include <stdio.h>
    #include <wchar.h> // Header file containing wprintf function
    // Driver code
    int main()
    {
    wint_t x = 5;
    wchar_t name[] = L "GEEKS" ;
    wprintf(L "x = %d " , x);
    wprintf(L "HELLO %ls " , name);
    return 0;
    }

    
    

    输出:

    x = 5 
    HELLO GEEKS
    
  2. wscanf(): 函数的作用是:从stdin读取数据,并将值存储到相应的变量中。附加参数应指向已分配的对象,该对象的类型由格式字符串中相应的格式说明符指定。

    语法:

    int wscanf (const wchar_t* format, ...);

    参数:

    • 格式: 指向以null结尾的字符串的指针,该字符串指定如何读取输入。它由以%开头的格式说明符组成。但是请注意,所有格式说明符的含义与scanf中的相同;因此,%lc应用于读取宽字符(而非%c),而%ls应用于宽字符串(而非%s)。
    • … : 用于接收数据的其他附加参数。它们按照格式说明符的顺序出现。这些参数的数量至少应与格式说明符存储的值的数量相同。函数会忽略其他参数。
    • 返回值: 函数的作用是:返回成功分配的接收参数数。我们可以计算并匹配预期的项目数,也可以由于匹配失败、发生读取错误或到达文件末尾导致错误而减少项目数。 如果在分配第一个接收参数之前发生故障,则返回EOF。

    // Program to show the wprintf () function.
    #include <stdio.h>
    #include <wchar.h> // Header file containing wscanf() function
    int main()
    {
    wchar_t str[80];
    int i;
    wscanf(L "%ls" , str);
    wscanf(L "%d" , &i);
    wprintf(L "I am a %ls of CSE in %d year." , str, i);
    return 0;
    }

    
    

    输入:

    GEEK
    2
    

    输出:

    I am a GEEK of CSE in 2 year.
    
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享