在C中扫描.txt文件以查找特定值

在C中扫描.txt文件以查找特定值,c,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。我试图做的是让用

我一直在玩弄从文本文件中读取数据的方法,并提出了一个我不确定如何解决的问题

假设我有以下文本文件:

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。我试图做的是让用户能够在时间索引中输入enter,然后让程序输出,例如,值1和该时间索引

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


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

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


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

我不完全理解您的意思,但如果您想编辑文件,可能会有帮助:

**外星人itw是一个结构

**我使用布尔运算

    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);

}

请先发布一些代码,打开一个文本文件,从每行读取3个值,然后打印它们。你知道怎么做。第二步是检查第一个字段,看它是否符合用户的需求。编辑抱歉您刚刚删除了“知道如何读取文件”