txt文件信息读不进去 c语言
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <Windows.h>
#define MAXN 10000
#define max 10
#define p 23

int Work();
int Delete();
void insert(int adr);
void Number(int key);
void Departure(char temp[]);
void Terminal(char temp[]);
void Start(float temp);
void Arrival(float temp);
void FileOutput();
void Output(int adr);

int hashlen = 0;

typedef struct 
{
    char departure[6];
    char terminal[6];
    float start;
    float arrive;
    int num;
    float date;
}flight;
flight line;


typedef struct
{
    flight data;
    int cnt;
}Hash;

Hash ha[MAXN];

int main()
{

    Work();
    FileOutput();
    return 0;
}

int Work()
{
    while (1)
    {
        printf("********欢迎使用航班信息查询和检索系统********\n");
        printf("1.清屏\t\n");
        printf("2.航班号\t3.起点站\t\n");
        printf("4.终点站\t5.起飞时间\t\n");
        printf("6.到达时间\t7.退出系统\t\n");
        printf("**********************************************\n");
        printf("请选择将要使用的功能\n");
        int t, temp; char temp2[5];
        float temp3;
        scanf("%d", &t);
        switch (t)
        {
        case 1:Delete();
            break;
        case 2:
        {
            printf("请输入航班号");
            scanf("%d", &temp);
            Number(temp);
            break;
        }
        case 3:
        {
            printf("请输入起点站");
            getchar();
            gets_s(temp2);
            Departure(temp2);
            break;
        }
        case 4:
        {
            printf("请输入终点站");
            getchar();
            gets_s(temp2);
            Terminal(temp2);
            break;
        }
        case 5:
        {
            printf("请输入起飞时间");
            scanf("%f", &temp3);
            Start(temp3);
            break;
        }
        case 6:
        {
            printf("请输入到达时间");
            scanf("%f", &temp3);
            Arrival(temp3);
            break;
        }
        case 7:
        {
            exit(0);
            break;
        }
        }
    }
}

int Delete()
{
    system("cls");

    return 0;
}

void Number(int key)
{
    int i=0, adr;
    int k = key;
    adr = k % p;
    insert(adr);
    if (ha[adr].data.num == key)
    {
        Output(adr);//在屏幕上显示
    }
    else
        printf( "对不起,查无此航班!\n" );
}

void Departure(char temp[])
{
    int i=0, flag = 0;
    for (i = 0; i < MAXN; ++i)//顺序查找
    {
        if (flag) break;
        else if (strcmp(ha[i].data.departure,temp)==0) 
        {
            Output(i);
            flag = 1;//标记是否查询到相关信息
        }
    }
    if (!flag)
        printf( "对不起,查无此航班!\n" );
}

void Terminal(char temp[])
{
    int i, flag = 0;
    for (i = 0; i < MAXN; ++i)
    {
        if (flag)
            break;
        else if (strcmp(ha[i].data.terminal,temp)== 0)
        {
            Output(i);
            flag = 1;
        }
    }
    if (!flag)
        printf("对不起,查无此航班!\n");
}

void Start(float temp)
{
    int i, flag = 0;
    i = temp / p;
    if (ha[i].data.start==temp)
    {
        Output(i);
        flag = 1;
    }
    if (!flag)
        printf( "对不起,查无此航班!\n" );
}

void Arrival(float temp)
{
    int i, flag = 0;
    i = temp / p;
     if (ha[i].data.arrive==temp)
    {
        Output(i);
        flag = 1;
    }
    if (!flag)
        printf ( "对不起,查无此航班!" );
}

void Output(int adr)
{
    printf("航班号\t起点站\t到达站\t班期\t起飞时间\t到达时间\t\n");
    printf("%d\t%s\t%s\t%.2f\t",ha[adr].data.num , ha[adr].data.departure ,ha[adr].data.terminal,ha[adr].data.date );
    printf("%.2f\t%.2f\t",ha[adr].data.start , ha[adr].data.arrive  );
    printf("\n");
}

void FileOutput()
{
    FILE* fp;
    fp= fopen("data.txt", "a+");
    while (!feof(fp)) { 
        fscanf(fp, "%d,%s,%s,%f,%f,%f", &line.num, line.departure, line.terminal, &line.start,&line.arrive, &line.date);
    }
    fclose(fp);
}

void insert(int adr) {
    ha[adr].data.num = line.num;
    ha[adr].data.start = line.start;
    strcpy(ha[adr].data.terminal, line.terminal);
    ha[adr].data.arrive = line.arrive;
    strcpy(ha[adr].data.departure, line.departure);

}





图片说明

1个回答

你的文件里面的逗号,是不是全角的,注意要用半角的逗号。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问