C语言 如何在文本文件中将文本打印为斜体?

7ivaypg9  于 2023-02-03  发布在  其他
关注(0)|答案(3)|浏览(239)

我在做一个程序要求用户输入引文信息(即作者姓名、文章标题、期刊标题、然后,它将处理这些信息,将其转换为适当的阿帕第7版引文,并最终打印成文本文件(这将用fprintf完成)。问题是某些信息--即期刊标题和卷号--需要斜体,但据我所知,fprintf不能打印格式化文本,因此斜体是完全不可能的。
我的问题是,有没有办法让一个特定的字符串在文本文件中显示为斜体?C甚至可以用它的标准库做到这一点吗?

hjqgdpho

hjqgdpho1#

我已经弄明白了。首先,我用write操作打开(或者更确切地说创建)了一个名为“citations.html”的文件。然后,我添加了多个fprintf语句来编写该文件,使其能够以HTML格式读取。下面是代码片段:

fp = fopen("citations.html", "w");

    fprintf(fp, "<!DOCTYPE HTML>\n");
    fprintf(fp, "<html>\n");
    fprintf(fp, "<body>\n");

    for(i=0;i<articleNum;i++)
        fprintf(fp, "<p>%s (%d). %s. <i>%s, %d</i>(%d), %d-%d. %s</p>\n", articles[i].authors_list, articles[i].year, articles[i].articleTitle, 
                                                            articles[i].periodicalTitle, articles[i].volNum, articles[i].issNum,
                                                            articles[i].pageMin, articles[i].pageMax, articles[i].link);

    fprintf(fp, "</body>\n");
    fprintf(fp, "</html>");

    fclose(fp);

注意,将要打印的字符串和整数存储为结构数组的成员。
在调用包含这些代码的函数时,程序现在生成一个可以用浏览器打开的html文件,浏览器将显示文本--全部用斜体显示--甚至可以将格式复制粘贴到MS Word中。
谢谢大家的澄清。看起来我完全误解了文本文件是如何工作的,但至少现在一切都澄清了。

dwbf0jvd

dwbf0jvd2#

下面是一个使用fprintf创建带有斜体文本的文件的代码示例。该文件是Rich Text Format的,可以用许多字处理应用程序(包括写字板和Word)打开。
文件将包含(注意斜体部分):
这是文本的"示例“。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    char* fn = "e:\\temp\\document1.rtf";
    FILE* fp = fopen(fn, "w");
    if (fp == NULL) {
        perror(fn);
        return 1;
    }
    fprintf(fp, "%s\n", "{\\rtf1\\ansi\\ansicpg1252\\deff0\\nouicompat\\deflang1036");
    fprintf(fp, "%s\n", "{ \\fonttbl");
    fprintf(fp, "%s\n", "{\\f0\\fnil\\fcharset0 Calibri; }");
    fprintf(fp, "%s\n", "}");
    fprintf(fp, "%s\n", "\\viewkind4\\uc1");
    fprintf(fp, "%s\n", "\\pard\\sa200\\sl276\\slmult1\\f0\\fs22\\lang12 ");
    fprintf(fp, "%s\n", "This is \\i an example \\i0 of text.\\par");
    fprintf(fp, "%s\n", "\\par");
    fprintf(fp, "%s\n", "}");

    fclose(fp);
    printf("Document \"%s\" generated\n", fn);
}

最简单的方法是用写字板创建一个文档,然后用记事本查看它。记事本将显示您创建的文档的RTF源代码,而写字板将 * 呈现 * RTF代码以显示格式。

mkshixfv

mkshixfv3#

如果你真的需要斜体纯文本,有一些Unicode块包括斜体字符Mathematical Alphanumeric Symbols,如果你的系统支持它们,它们应该可以正确显示。网上有转换器可以将纯文本转换为斜体字符,但我不知道是否有人已经在某处写了代码...

相关问题