c 计算文件字符数,行数,单词数

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

#define NONE                 "\e[0m"
#define BLUE                 "\e[0;34m"
#define GREEN                "\e[0;32m"
#define RED                  "\e[0;31m"

#define PRINT_WITH_RED(fmt, ...) \
    printf(RED fmt NONE, ##__VA_ARGS__);

#define PRINT_WITH_GREEN(fmt, ...) \
    printf(GREEN fmt NONE, ##__VA_ARGS__);

#define PRINT_WITH_BLUE(fmt, ...) \
    printf(BLUE fmt NONE, ##__VA_ARGS__);

int main()
{
    int ch, iLineCount, iWordCount, iCharCount;
    iLineCount = iWordCount = iCharCount = 0;

    FILE *fp;

    if((fp = fopen("/home/programs/clion/main.cpp", "r")) == NULL)
    {
        printf("can not open file\n");
        exit(0);
    }
    while ((ch = fgetc(fp)) != EOF)
    {
        printf("%c ", ch);
        ++iCharCount;
        PRINT_WITH_BLUE("char +1: %d ", iCharCount);
        if (ch == '\n')
        {
            ++iLineCount;
            PRINT_WITH_RED("line +1: %d ", iLineCount);
        }
        if (ch == ' ' || ch == '\n' || ch == '\t')
        {
            PRINT_WITH_GREEN("words +1: %d ", iWordCount);
            ++iWordCount;
        }
        putchar('\n');
    }

    printf("line: %d, words: %d, char: %d\n", iLineCount, iWordCount, iCharCount);

    fclose(fp);

    return 0;

}运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值