删除文件中的注释(C语言)

【题目描述】删除文件中的注释:将C语言源程序(hello.c)文件中的所有注释去掉后存入另一个文件(new_hello.c)。试编写相应程序。

【代码】

c 复制代码
#include <stdio.h>
#include <stdlib.h>
int main(void) {
    FILE *fp1, *fp2;
    if ((fp1=fopen("hello.c", "r")) == NULL) {
        printf("Can't open file");
        exit(0);}
    if ((fp2=fopen("new_hello.c", "w")) == NULL) {
        printf("Can't open file");
        exit(0);}

    int i = 0, flg = 0;
    char str[1000];
    while (!feof(fp1)) {
        char ch = fgetc(fp1);
        if (ch == EOF) {
            break;}
        str[i++] = ch;}
    str[i] = '\0';
    for (int j=0; j<i; j++) {
        if (j<i-1 && str[j]=='/' && str[j+1]=='*') {
            flg = 1;}
        if (flg == 0) {
            fprintf(fp2, "%c", str[j]);}
        if (flg==1 && j<i-1 && str[j]=='*' && str[j+1]=='/') {
            flg = 0;
            j++;}}
     fclose(fp1);
     fclose(fp2);
    return 0;}

暂时没有想到好的方法,生气!!!

相关推荐
HABuo4 小时前
【linux文件系统】磁盘结构&文件系统详谈
linux·运维·服务器·c语言·c++·ubuntu·centos
2401_858936889 小时前
【Linux C 编程】标准 IO 详解与实战:从基础接口到文件操作实战
linux·c语言
季明洵12 小时前
C语言实现单链表
c语言·开发语言·数据结构·算法·链表
浅念-12 小时前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
爱吃生蚝的于勒12 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森12 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
C++ 老炮儿的技术栈13 小时前
Qt 编写 TcpClient 程序 详细步骤
c语言·开发语言·数据库·c++·qt·算法
wangjialelele14 小时前
Linux下的IO操作以及ext系列文件系统
linux·运维·服务器·c语言·c++·个人开发
wengqidaifeng16 小时前
数据结构(三)栈和队列(上)栈:计算机世界的“叠叠乐”
c语言·数据结构·数据库·链表
VekiSon17 小时前
Linux内核驱动——设备树原理与应用
linux·c语言·arm开发·嵌入式硬件