У меня есть текстовый файл, содержащий информацию о рейсе с датами вылета.(Будет связан текстовый файл) Мне нужно, чтобы этот текстовый файл был разбит на несколько текстовых файлов, где каждый созданный текстовый файл имеет только одну конкретную авиакомпанию.Должно быть создано 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