对不起,如果标题有点偏离,我会尝试在这里解释一下。
我有一个程序,可以将结构中的信息存储到文件中。
以下是结构:
#define NUMROWS 10
#define NUMCOLS 10
#define MAX_NAME_LENGTH 10
struct infoStruc
{
char name[MAX_NAME_LENGTH]; // for storing table name
INITIAL_STEP water;
INITIAL_STEP base;
double infoRates[ROWS][COLS]; // matrix of flow rates
};
typedef struct infoStruct INFO_TABLE;
INITIAL_STEP结构只包含一个初始值和一个用于增加该值的步长。
以下是我将此信息保存到.ket文件中时的样子。 (我为此选择的随机扩展名)。 ketPtr是一个指向INFO_TABLE类型的地址的指针(如果我说的那样)。
FILE *fp; //the file pointer.
fp = fopen("test.ket", "wb");
if(fp != NULL)
{
fwrite(ketPtr, sizeof(INFO_TABLE), 1, fp);
fclose(fp);
}
现在我相信我的问题是我以后真的试图阅读这些信息。我尝试了多种方法,但这是我最成功的方法。
FILE *fp;
fp = fopen("test.ket", "r");
if(filePtr == NULL)
...
fgets(ketPtr, sizeof(INFO_TABLE), fp);
fclose(fp);
但是当我尝试访问这些信息时,我只能到目前为止。例如,我可以得到名称,水值,但如果我去了,当我深入inforRates矩阵时,我不会得到信息。
我认为这个问题是因为我得到了一个可以停止fgets的换行符,但我不确定从文件中获取信息的正确方法。
感谢您花时间阅读本文以及您可能提供的任何帮助。