Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,884 questions

51,810 answers

573 users

How to remove lines from a text file that start with square brackets ([) in C

1 Answer

0 votes
#define _CRT_SECURE_NO_WARNINGS

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

void removeLinesStartWith(char ch, char file[]) {
    char filetmp[32] = "tmp.txt";
    FILE* fp = fopen(file, "r");
    FILE* fptmp = fopen(filetmp, "w");

    if (fp == NULL || fptmp == NULL) {
        printf("Error open file\n");
        exit(EXIT_FAILURE);
    }

    char s[128];
    int i = 1;
    while ((fgets(s, 128, fp)) != NULL) {
        if (s[0] != ch)
            fputs(s, fptmp);
        i++;
    }

    fclose(fp);
    fclose(fptmp);

    remove(file);
    rename(filetmp, file);
}

void readFile(char file[]) {
    FILE* fp = fopen(file, "r");

    char ch;
    while ((ch = fgetc(fp)) != EOF)
        putchar(ch);

    fclose(fp);
}

int main()
{
    char file[100] = "d:\\data.txt";

    readFile(file);

    removeLinesStartWith('[', file);

    puts("\n--------------");

    readFile(file);

    return 0;
}



/*
run:

/*
run:

c c++ c#
[abc]
java python
[xyz]
javascript php
--------------
c c++ c#
java python
javascript php

*/

 



answered Mar 11, 2025 by avibootz
...