无法让程序正确读取文件中的信息(认为这是因为换行符)

时间:2014-03-31 17:55:30

标签: c structure

对不起,如果标题有点偏离,我会尝试在这里解释一下。

我有一个程序,可以将结构中的信息存储到文件中。

以下是结构:

#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的换行符,但我不确定从文件中获取信息的正确方法。

感谢您花时间阅读本文以及您可能提供的任何帮助。

0 个答案:

没有答案