如何在C中显式打印特殊字符?

杰西

当我使用以下代码时:

#include <stdio.h>

int main(void)
{
    printf("%s","Hello world\nHello world");
    return 0;
}

它打印为:

 Hello world
 Hello world

如何防止这种情况并将其打印为C中的原始字符串文字?我的意思是应该按如下所示在终端窗口中显示它:

Hello world\nHello world

我知道我可以通过对printf使用反斜杠来实现此目的,但是还有其他C函数或方法可以不反斜杠吗?读取文件时会很有帮助。

肿胀

没有内置的机制可以做到这一点。您必须手动执行每个字符。但是,中的功能ctype.h可能会有所帮助。具体来说,在“ C”语言环境中,对于基本执行字符集中的isprint所有图形字符,该功能均保证为true ,这实际上与7位ASCII中的所有图形字符相同,外加空格;并且保证不是所有7位ASCII控制字符都为true ,包括制表符,回车符等。

这是一个草图:

#include <stdio.h>
#include <ctype.h>
#include <locale.h>

int main(void)
{
    int x;
    setlocale(LC_ALL, "C"); // (1)

    while ((x = getchar()) != EOF)
    {
        unsigned int c = (unsigned int)(unsigned char)x; // (2)

        if (isprint(c) && c != '\\')
            putchar(c);
        else
            printf("\\x%02x", c);
    }
    return 0;
}

这不逃'也不是",但它确实逃逸\,这是简单的扩展,如果你需要它。

\n练习时保留U + 000A,\rU + 000D等的打印练习还需要处理基本执行字符集之外的字符(例如U + 0080至U + 10FFFF的UTF-8编码)。

该程序包含完全符合标准的C库不需要的两件事,但以我的经验,在真正的操作系统上是必需的。它们用(1)标记(2)

1)这明确地将它的“区域”的配置方式应该到默认设置。

2)从返回的值getcharint它被认为是无论是在范围表示的一个数通过unsigned char(通常0-255含),或特殊值EOF(这是范围表示的通过unsigned char)。但是,已知错误的C库为设置了最高位的字符返回负数。如果发生这种情况,printf例如\xffffffa1在应打印时打印\xa1投射xunsigned char然后再返回以unsigned int更正此问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中的字符串中显式打印“ \ n”

来自分类Dev

如何在C ++中打印此“█”特殊字符?

来自分类Dev

如何在python中打印特殊字符

来自分类Dev

如何在Ionic 2中打印特殊字符

来自分类Dev

如何在C ++中显式调用抛出异常的方法?

来自分类Dev

如何在回显中打印“ -e”?

来自分类Dev

如何在批处理文件中回显特殊字符?

来自分类Dev

我如何在回显字符串中打印一些数组

来自分类Dev

如何在Coq中显式提供隐式参数?

来自分类Dev

如何在C#中编码和解码特殊字符

来自分类Dev

如何在Javascript中打印罗马语言(例如西班牙语)/特殊字符?

来自分类Dev

如何在正則表達式中包含特殊字符?

来自分类Dev

如何在 C++ 中显式实例化模板 constexpr 变量?

来自分类Dev

如何在C ++中显式实例化模板构造函数?

来自分类Dev

如何在C#中的基类上调用显式接口方法?

来自分类Dev

如何在 C++ 中不使用显式类型调用模板函数?

来自分类Dev

在Nim中如何在编译时回显/打印?

来自分类Dev

如何在PHP中回显或打印数组?

来自分类Dev

如何在C ++中打印非ASCII字符

来自分类Dev

如何在C中只打印一些字符?

来自分类Dev

如何在C中打印数字符号?

来自分类Dev

如何在C中的“如果”内打印字符

来自分类Dev

如何在 C 中打印字符串或整数?

来自分类Dev

如何使用 ncurses 库在 c++ for mac 中打印特殊字符

来自分类Dev

如何在Android中编写特殊字符

来自分类Java

如何在SimpleDateFormat中插入特殊字符?

来自分类Dev

如何在熊猫中编码特殊字符?

来自分类Dev

如何在XML中编码特殊字符

来自分类Dev

如何在Elasticsearch中查询特殊字符

Related 相关文章

热门标签

归档