我正在尝试创建一个包含两个文件指针的结构。 (见下文)C语言,文件结构
typedef struct dataFiles
{
FILE * inputSet;
FILE * outputSet;
}fData;
我希望能够用它来使用函数来打开和关闭文件,我有一个就在这里:
void openFiles(struct dataFiles * fiData)
{
fiData->inputSet = fopen("inputfile.txt","r");
fiData->outputSet = fopen("outputfile.txt","o");
return fiData;
}
在主函数中我第一次声明结构为:
fdata * fileData;
然后尝试,并通过访问:
openFiles(&fileData);
我的程序运行和编译,但我有问题从输入文件中获取数据到结构中,当我检查我的输出时,它都是0。任何有关如何实现这种类型的代码的一般技巧将不胜感激。 (注意:这是一个有关学校作业的问题,但是,我已经达到了作业的要求,并且仅仅因为我自己的好奇而对此感兴趣)〜谢谢!
你的编译器应该抱怨(至少是警告)关于你发布的代码中至少有两件事情 - 试图为'void'函数返回一个非void表达式并将错误类型的指针传递给'openFiles() '。更不用说'fileData'声明中的错字。 – 2012-01-18 23:37:24
作为一个附注,除非你只打开一个ascii文件,你应该添加“b”标志fopen。即使用'fopen(文件名,“rb”)'。不同之处在于,如果没有它,您将在文件的早期获得EOF。 – chacham15 2012-01-18 23:37:30
您的程序是否编译时没有警告?提示:永远不要忽略编译器警告! – asaelr 2012-01-18 23:37:36