回 帖 发 新 帖 刷新版面

主题:[讨论]文件的读写

大家帮忙看看,文件的读写,程序中文件读不出来
typedef struct inforair{
    int air;                  //航班号
    int prise;              //票价
}inforair;                    //定义航班表信息节点
typedef struct infortrain{
    //出发站
    //终点站
    int prise;              //票价;  
    int train;                //列车次   
}infortrain ;                //定义列车时刻表信息节点
typedef struct node1{
    char *start0;            //出发站
    char *end0;              //终点站
    inforair *air;           //航班信息
    infortrain *train;        //列车时刻表信息
    node1 * next;             //指向下一个节点的指针
}node1;                     //定义边的信息
typedef struct node2{
    char  *city;            //城市名称
    node2* downext;         //指向下一个头结点
    node1 * rnext;           //指向边节点
}node2;              
class wenjian  
{
public:
    void print();
    void InsertArc();
    wenjian();
    virtual ~wenjian();

};
void wenjian::InsertArc()
{
    node1 city;FILE* f,*fp;int a;char ch;
    
    
    if((f=fopen("列车时刻表","a+"))==NULL)
    {
        printf("文件打开失败\n");
        return;
    }
    city.start0=(char*)malloc(sizeof(char));
    city.end0=(char*)malloc(sizeof(char));
    city.next=NULL;
    city.train=NULL;
    city.air=NULL;
    while((city.train=(infortrain*)malloc(sizeof(infortrain)))==NULL)
        city.train=(infortrain*)malloc(sizeof(infortrain));
    printf("输入起始站: ");
    scanf("%s",city.start0);
    printf("输入终止站: ");
    scanf("%s",city.end0);
    printf("输入列车次:");
    scanf("%d",&city.train->train);
    printf("输入票价:");
    scanf("%d",&city.train->prise);
    printf(""); //输入起始时间
    fwrite(&city,sizeof(node1),1,f);
    fclose(f);
}

void wenjian::print()
{
    FILE *f,*fp;node1 city;
    
    if((f=fopen("列车时刻表","r+"))==NULL)
    {
        printf("文件打开失败\n");
        return;
    }
    printf("列车时刻表\n");
    while(fread(&city,sizeof(node1),1,f))
    {   
        if(city.train!=NULL)
            printf("列车次:%d   起始站:   终止站:   出站时刻: 进站时刻:票价:",city.train->train);
        
    }
    
    
    fclose(f);
}

#include "stdafx.h"
#include"wenjian.h"
int main(int argc, char* argv[])

    wenjian l;
    //l.InsertArc();
    l.print();
    printf("Hello World!\n");
    return 0;
}

回复列表 (共1个回复)

沙发

把类套在C上,我晕了……
检查一下你在代码的编译输出目录(也就是最后生成exe的那个目录)里面有没有一个无扩展名文件叫“列车时刻表”吧,如果没有,文件打开肯定是失败的

我来回复

您尚未登录,请登录后再回复。点此登录或注册