gpt4 book ai didi

c - 如何打印带格式的文本

转载 作者:太空狗 更新时间:2023-10-29 15:13:49 27 4
gpt4 key购买 nike

我的问题是,当我尝试打印带有“\n”的文本时,这个特殊字符对于 printf 是不可见的,并在将其回显到文件并再次读取后放入。

#include <stdio.h>
#include <string.h>

int main()
{
FILE *f;
char *s = (char*) malloc (2919);
strcpy(s, "printf 'H4sIAIM4aFYCAwtJLS6JyQsBklwAMrDLnwsAAAA=' | base64 -d | gunzip > r"); //Test\nTest after decoding
system(s);
f = fopen("r", "r");
fseek(f, SEEK_SET, 0);
fread(s, 2919, 1, f);
printf("%s", s); //puts(s); gives the same result
fclose(f);
system("rm r");
free(s);
return 0;
}

输出应该是这样的:

Test
Test

它看起来像 Test\nTest。我究竟做错了什么?学习目的,所以请友善。

最佳答案

您编码的文本如下所示:

Test\nTest

这是一个 10 个字符的字符串,“\”代表第五个字符,“n”代表第六个。这与此不同:

char str[]="Test\nTest";

这是一个 9 个字符的字符串,第 5 个字符换行。

如果你想打印一个换行符,你的编码字符串需要包含它。要么,要么您必须解析结果字符串并手动执行换行符替换。

关于c - 如何打印带格式的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34181239/

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