当我们在txt文件中搜索单词时我们如何在txt文件中着色

时间:2014-05-30 00:40:33

标签: c search colors

你好在c的代码中找到txt文件中的字符串 我的代码有多少次从第一个字符中找到了字符串和pos 但是当我找到字符串时,我想要在txt文件中使用颜色 但我不知道我怎么能这样做 代码:

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

main()
{
    FILE*fp;
    char fname[100];
    char data[20];
    char choice;
    char key[10];
    char*ptr;
    int counter=0;
    int pos_start;
    printf("Program start-up....\n");
    printf("Enter file name: ");
    gets(fname);
    fp=fopen(fname,"r");
    if (fp==NULL)
    {
        printf("Error:File can not be opened\n");
        printf("program closed...\n");
        exit(1);
    }
    printf("File is opened successfully\n");
    printf("Do you want search for string(y/n)");
    scanf(" %c",&choice);
    while ((choice!='y') && (choice!='n'))
    {
        printf("Do you want search for string(y/n)");
        scanf(" %c",&choice);
    }
    if (choice=='n')
    {
        printf("Search cancelled\n");
        printf("Program closed...\n");
        exit(1);
    }
    if (choice=='y')
    {
        printf("Search start-up...\n");
        printf("Please insert word: ");
        scanf("%s",key);
        while(!feof(fp))
        {
            fgets(data,sizeof(data),fp);
            ptr = strstr(data,key);
            while(ptr!=NULL)
            {
                counter++;
                pos_start=(ptr-data);
                printf("Position: %d\n",pos_start);
                ptr= strstr(ptr+1,key);
            }
        }
    }
    if (counter==0)
        printf("Word not found\n");
    if(counter>0)
        printf("Word: %s found: %d times\n",key,counter);
    printf("Search end\n");
    printf("Progarm closed...\n");
    fclose(fp);
    return 0;
}

1 个答案:

答案 0 :(得分:0)

你不能,文本文件是一个文本文件,它只包含字符,没有任何格式(颜色,字体等......)

您可能希望查看输出的其他文本文件格式,例如:HTML。

编辑:

如果要将结果输出到控制台而不是文件,某些终端支持ANSI colors code。由于它是偏离主题的(您要求编写文件),您可以参考this SO question在终端上打印颜色。