Один текстовый файл можно разбить на несколько текстовых файлов с конкретными именами в c - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть текстовый файл, содержащий информацию о рейсе с датами вылета.(Будет связан текстовый файл) Мне нужно, чтобы этот текстовый файл был разбит на несколько текстовых файлов, где каждый созданный текстовый файл имеет только одну конкретную авиакомпанию.Должно быть создано 4 текстовых файла, потому что есть авиакомпании AA, DL, OO и F.Это означает, что необходимо создать четыре текстовых файла: AA.txt, DL.txt, OO.txt и F.txt, и в каждом текстовом файле должна быть указана только конкретная авиакомпания.Таким образом, в AA.txt должны быть только рейсы американских авиакомпаний, и никаких других рейсов и т. Д. Как будет выглядеть код в C?

Вот что у меня есть:

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

int main()
{
    FILE *fp1;
    char* arr[4] = {"AA", "DL", "OO", "F"};
    char airLine[350];
    char line[120];
    int noLine = 0;
    char **str = NULL;

    printf("Enter input file name:");
    scanf("%s", airLine);

    fp1 = fopen(airLine,"r");
    if (!fp1)
    {
        return 1;
    }
    while(fgets(airLine, sizeof(airLine), fp1) != NULL)
    {
        if(strchr(airLine, '\n'))
        airLine[strlen(airLine)-1] = '\0';
        str = (char**)realloc(str, sizeof(char**)*(noLine+1));
        str[noLine] = (char*)calloc(350, sizeof(char));
        strcpy(str[noLine], airLine);
        noLine++;
    }
    for()
    {

    }
}

Это то, что, я думаю, должно произойти в коде c.

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

int main()
{
    FILE *fp1;
    char* str[6] = {"AA", "DL", "OO", "F"};
    // want to have the first 2 characters don't know how
    char airLine[350];
    char line[120];

    printf("Enter input file name:");
    scanf("%s", airLine);

    fp1 = fopen(airLine,"r");
    if (!fp1)
    {
       return 1;
    }

    while(fgets(airLine, sizeof(airLine), fp1) != NULL)
    {
        if(// if the first 2 characters of airline doesn't exist inarray)             
        // write unknown characters in the array that are in the text
        // file otherwise do nothing
    }
    for(// iterate through the list of the collected string)
    {
        sprintf(line, ".txt");
        fp2 = fopen(line, "w");
        while(fgets(line, sizeof(line), fp2) != NULL)
        {
            if(// If the airline matches the airline in the current txt     file)
            // Then write the airline and create the file otherwise do nothing
            // prob fprintf maybe
        }
        // maybe close fp2 in here
    }
    fclose(fp1);
    fclose(fp2);
    return 0;
}

Это текстовый файл:

AA43 DFW DTW 2016-01-06 11:00
AA43 DFW DTW 2016-01-17 11:00
AA44 SEA JFK 2015-02-05 7:45
AA197 ORD BOS 2012-03-12 11:50 
AA1 JFK LAX 2016-07-02 9:00
OO7435 DTW PLN 2016-11-22 21:55
F9612 DEN MIA 2014-12-19 22:15
DL801 GEG MSP 2016-08-31 9:00
DL1087 ATL DAB 2016-04-10 12:05
DL828 IAH SLC 2012-06-02 7:45
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...