gpt4 book ai didi

c - 打印字符串的所有字符(包括转义序列)

转载 作者:行者123 更新时间:2023-11-30 14:41:01 24 4
gpt4 key购买 nike

我想打印存储在字符串中的所有字符,包括转义序列。

我知道打印转义序列只会打印空白,因此我做了一些修改,首先检查该字符是否是特定的转义序列,然后打印“\\转义序列”,以便我可以将其可视化。

下面是我在 Linux gcc 环境中运行的 C 代码和输出的一部分。

我发现 '\n' 可以用我的代码打印,但与下面的输出(没有转义序列检查)相比,缺少一些我不知道的东西。

文本文件是在 Windows 中创建的,因此我假设该行的每一端都存在字符“\r\n”,但“\r”似乎不存在。

我错过了什么?

char c;
while ((c = fgetc(fp)) != EOF) {
if (c == '\n') { printf("\\n\n"); }
else if (c == '\r') { printf("\\r\n"); }
else if (c == '\0') { printf("null\n"); }
else { printf("%c\n", c); }
}
printf("\n----------------\n");
fseek(fp, 0, SEEK_SET);
while ((c = fgetc(fp)) != EOF) {
printf("%c\n", c);
}

文本文件的内容:

1

2

空白

空白

3

4

输出结果:

Output result

要求输出结果[CoffeeTableEspresso]:

Output result <CoffeeTableEspresso> asked for

最佳答案

如果您以文本模式打开它,它将处理 \r\n\n ,这就是为什么您看不到 \r任何地方。如果你想看\r ,尝试以二进制模式打开它。做同样的事情,你应该看到 \r以及 \n ,与以文本模式打开文件不同。

编辑:

以文本模式打开阅读:fopen(filename, "r") .

以二进制模式打开读取:fopen(filename, "rb") .

关于c - 打印字符串的所有字符(包括转义序列),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55188468/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com