简单小项目:注释转换

NotesExchange.h

#ifndef __NOTESEXCHANGE_H__

#define __NOTESEXCHANGE_H__

#include <stdio.h>
#include <windows.h>

#define INPUTFILE   "input.c"
#define OUTPUTFILE  "output.c"

enum
{
    CSTATUS,//C注释状态
    CPPSTATUS,//C++注释状态
    NULLSTATUS,//普通状态
    EOFSTATUS//结束状态

};

void notes_exchange();
void notes_check(FILE *ifp, FILE* ofp);
void do_null_status(FILE *ifp, FILE *ofp);
void do_c_status(FILE *ifp, FILE *ofp);
void do_cpp_status(FILE *ifp, FILE *ofp);




#endif //__NOTESEXCHANGE_H__
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  **NotesExchange.c**
#define _CRT_SECURE_NO_WARNINGS -1

#include "NotesExchange.h"

int status = NULLSTATUS;

void do_null_status(FILE *ifp,FILE *ofp)
{
    int ch = fgetc(ifp);

    switch (ch)
    {
    case '/':
    {
                int s = fgetc(ifp);
                switch (s)
                {
                case '*':
                    fputc('/', ofp); 
                    fputc('/', ofp);
                    status = CSTATUS;
                    break;
                case '/':
                    fputc('/', ofp);
                    fputc('/', ofp);
                    status = CPPSTATUS;
                    break;
                case EOF:
                    fputc('/', ofp);
                    status = EOFSTATUS;
                    break;
                default:
                    fputc('/', ofp);
                    fputc(s, ofp);
                    break;
                }
    }
        break;
    case EOF:
        status = EOFSTATUS;
        break;
    case '\n':
        fputc(ch,ofp);
        break;
    default:
        fputc(ch,ofp);
        break;
    }
}

void do_c_status(FILE *ifp, FILE *ofp)
{
    int ch = fgetc(ifp);

    switch (ch)
    {
    case '*':
    {
                int s = fgetc(ifp);

                switch (s)
                {
                case '/':
                    fputc('\n',ofp);
                    status = NULLSTATUS;
                    break;
                case '/n':
                    fputc('\n', ofp);
                    fputc('/', ofp);
                    fputc('/', ofp);
                    break;
                case EOF:
                    status = EOFSTATUS;
                    break;
                default:
                    fputc('*', ofp);
                    ungetc(s,ifp);
                    break;
                }
    }
        break;
    case '\n':
        fputc('\n',ofp);
        fputc('/', ofp);
        fputc('/', ofp);
        break;
    case EOF:
        status = EOFSTATUS;
        break;
    default:
        fputc(ch,ofp);
        break;
    }
}

void do_cpp_status(FILE *ifp, FILE *ofp)
{
    int ch = fgetc(ifp);

    if (ch!='\n')
    {
        fputc(ch,ofp);
    }
    else
    {
        fputc(ch, ofp);
        status = NULLSTATUS;
    }
}


static void notes_check(FILE *ifp,FILE* ofp)
{
    while (status != EOFSTATUS)
    {
        switch (status)
        {
        case NULLSTATUS:
            do_null_status(ifp,ofp);
            break;
        case CSTATUS:
            do_c_status(ifp, ofp);
            break;
        case CPPSTATUS:
            do_cpp_status(ifp, ofp);
            break;
        case EOFSTATUS:
            break;
        default:
            break;
        }
    }

}

void notes_exchange()
{
    FILE *ifp = fopen("ITPUTFILE.txt", "r");
    FILE *ofp = fopen("OUTPUTFILE.txt", "w");

    if (ifp == NULL||ofp == NULL)
    {
        perror("fopen");
        return;
    }

    notes_check(ifp,ofp);

    fclose(ifp);
    fclose(ofp);
}

test.c

#define _CRT_SECURE_NO_WARNINGS -1

#include "NotesExchange.h"


int main()
{
    notes_exchange();

    system("pause");
    return 0;
}

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
以下是一个简单的银行信用卡大数据项目的Python代码示例,包括数据清洗、去重、填充缺失值、异常值处理和数据转换等操作: ```python import pandas as pd import numpy as np # 读取数据文件 data = pd.read_csv("credit_card_data.csv") # 去重操作 data.drop_duplicates(inplace=True) # 填充缺失值 data.fillna(method='ffill', inplace=True) # 异常值处理 median = np.median(data['credit_limit']) std = np.std(data['credit_limit']) data['credit_limit'] = np.where(np.abs((data['credit_limit'] - median) / std) > 3, median, data['credit_limit']) # 数据转换 data['gender'] = data['gender'].map({'M': 0, 'F': 1}) # 保存处理后的数据文件 data.to_csv("cleaned_credit_card_data.csv", index=False) ``` 注释如下: - `import pandas as pd`:导入Pandas库,用于数据处理和分析。 - `import numpy as np`:导入Numpy库,用于数学计算。 - `data = pd.read_csv("credit_card_data.csv")`:从CSV文件中读取原始数据。 - `data.drop_duplicates(inplace=True)`:去除重复行。 - `data.fillna(method='ffill', inplace=True)`:用前一个非缺失值填充缺失值。 - `median = np.median(data['credit_limit'])`:计算信用额度中位数。 - `std = np.std(data['credit_limit'])`:计算信用额度标准差。 - `data['credit_limit'] = np.where(np.abs((data['credit_limit'] - median) / std) > 3, median, data['credit_limit'])`:将信用额度超过3个标准差的值替换为中位数。 - `data['gender'] = data['gender'].map({'M': 0, 'F': 1})`:将性别数据从文本转换为数字(0表示男性,1表示女性)。 - `data.to_csv("cleaned_credit_card_data.csv", index=False)`:将处理后的数据保存到CSV文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值