我一直在玩文本文件阅读,并提出了一个我不确定如何解决的问题。
假设我有以下文本文件:
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。我正在努力围绕解决这个问题的有效方法。我最初的想法是将文件读入矩阵,然后在矩阵中搜索用户输入的任何值,但我不确定如何继续。
任何想法或想法将不胜感激。
答案 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);
}