在。

时间:2015-12-05 21:41:51

标签: c

我一直在玩文本文件阅读,并提出了一个我不确定如何解决的问题。

假设我有以下文本文件:

0004    78  119
0014    76  118
0024    78  117
0034    74  118
0044    76  119
0054    75  116
0064    78  119
0074    79  120
0084    81  122
0094    82  124

第1列表示时间索引,而第2列和第3列在这些时间索引处是值1和2。我要做的是让用户能够输入时间索引输入然后让程序吐出,例如,值1和那个时间索引。

例如,用户输入0094将分别吐出值82。我正在努力围绕解决这个问题的有效方法。我最初的想法是将文件读入矩阵,然后在矩阵中搜索用户输入的任何值,但我不确定如何继续。

任何想法或想法将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果您希望用户能够进行多次搜索,我建议将所有信息存储到内存中,让我们说一个包含文件每列字段的结构数组

否则,您可以逐行读取文件,并在找到请求的结果时停止。

答案 1 :(得分:-1)

我并不完全明白你的意思,但是如果你想编辑文件可能对你有所帮助:

**外星人是一个结构

**我使用布尔

    void update(int codeAlien)
{
    FILE *ptr_file = fopen("c:\\starwors\\starship.dat", "r+b");
    boolean update = FALSE;
    alien find_alien;
    int alienNum = 1;
    long location = ftell(ptr_file);
    fread(&find_alien, sizeof(alien), 1, ptr_file);

    while (update == FALSE) // find  the struct
        (find_alien.id == codeAlien) ? update = TRUE :
        (location = ftell(ptr_file), fread(&find_alien, sizeof(alien), 1, ptr_file));

    //  change the struct


    fwrite(&find_alien, sizeof(alien), 1, ptr_file);// write the value
    fclose(ptr_file);

}