C 언어로 TXT 파일을 읽으려면 요구 사항 : 한 줄씩 읽은 다음 지정된 TXT 파일로 한 줄씩 출력

C 언어로 TXT 파일을 읽으려면 요구 사항 : 한 줄씩 읽은 다음 지정된 TXT 파일로 한 줄씩 출력

검토 :
발생한 문제 및 상황의 요구 :

  • 2002 년부터 2013 년까지 베이징의 번개 재난 탐지 웹 사이트에서 얻은 629 개의 번개 재해 데이터가 있습니다. 텍스트 클러스터링을 수행하기 위해서는 txt 파일의 629 개 데이터를 629 개의 txt 파일로 분산시켜야합니다. , 수동 분류에는 최소 5 시간이 소요됩니다. 시간을 절약하기 위해 C 언어를 선택하여 629 개의 데이터를 629 개의 txt 파일로 분할하여 향후 텍스트 클러스터링을위한 데이터를 준비하십시오.
    오랫동안 C 언어를 읽지 못해 관련 파일 입출력 기능을 잊었 기 때문에 이번 기회에 관련 지식을 복습 할 수 있습니다.

사용 된 주요 기능 :

  • fopen
  • feof
  • fgets
  • fputs
  • fclsoe

출력 파일 이름의 자체 증가 연산을 구현하기 위해 문자열 포맷 명령으로 sprintf 함수를 사용합니다. 실제로 중간에 많은 구덩이가 있습니다. 블로그 형태로 코드를 첨부하여 기록하세요!
시간이 비교적 짧기 때문에 관련 코드의 최적화 및 미화 작업이 완료되지 않았습니다!

아래와 같이 코드 쇼

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

char * ReadSpeacialLine(int i)
{
    
    
    char filename[] = "C:/Users/zhangbin/Desktop/tet/test.txt"; //文件名
    FILE *fp;
    int WhichLine=i;             //指定要读取哪一行
    int CurrentIndex=0;             //当前读取的行
    static char StrLine[1024];             //每行最大读取的字符数,可根据实际情况扩大
    if((fp = fopen(filename,"r")) == NULL) //判断文件是否存在及可读
    {
    
    
        printf("error!");
        return NULL;
    }

    while (!feof(fp))
    {
    
    

        if (CurrentIndex==WhichLine)
        {
    
    
            fgets(StrLine,1024,fp);  //读取一行
            printf("%s", StrLine); //输出
            return StrLine;
        }
        fgets(StrLine,1024,fp);  //读取一行,并定位到下一行
        CurrentIndex++;

        //printf("%s", StrLine); //输出
    }
    fclose(fp);                     //关闭文件
    return NULL;
}

int main()
{
    
    
    FILE * fd;
    char * sBuf ;//= (char *)malloc(1024);
    char * fileName = "C:/Users/zhangbin/Desktop/tet/";
    char  sName[1024];
    //int num = 1;
    //sprintf(sName,"%s%d.txt",fileName,num);
    //printf("%s",sName);
    //输出位置
    for(int i = 0; i < 629; i++)
    {
    
    
        int num = i + 1;
        sBuf = ReadSpeacialLine(i);
        printf("%s",sBuf);
        sprintf(sName,"%s%d.txt",fileName,num);   //字符串格式化输出
        printf("%s",sName);
        fd = fopen(sName,"w");
        fputs(sBuf,fd);
        fclose(fd);
    }

   // free(sBuf);
    return 0;
}

원본 데이터 :
여기에 사진 설명 삽입
줄 단위로 추출한 후의 효과는 다음과 같습니다.
여기에 사진 설명 삽입
각 txt 파일은 다음 내용과 유사합니다.
여기에 사진 설명 삽입

추천

출처blog.csdn.net/qq_41782149/article/details/104593812