我将用C语言创建一个简单的数据库银行帐户,但我还没弄清楚我将如何获取已创建并发送到文件的特定帐户的数据。我正在考虑使用fseek
从文件开头搜索指定的帐号,因为所有帐号都是唯一的。一旦找到该帐号,是否有办法读取下面指定的行数?例如,在我的档案accounts.txt
中会有帐户
Account # : 13398
First Name : Eric
Last Name : Walters
Parish : St.tofu
Year of Birth : 1980
Age : 34
Savings Period : 5 year(s)
Password : Eric1
Account # : 13398
Account balance: $0.00
====================================
我想在文件中搜索帐号并将其与其下方的其他10行一起取出并在屏幕上显示,如果有可能则说'aye'并指向我应该学习的某个区域实现这一点,当我成功的时候,我会在这里发布我的编码,以显示我所做的事情。
答案 0 :(得分:2)
fseek()
允许您在每个文件中跳过一定数量的字节。如果您的行长度不一样,则必须阅读整个文件,不仅要搜索帐号,还要查找划分每个帐户的十个换行符。要做到这一点,最好使用fgets()
。
步骤将是这样的
foreach line in file
if line starts with "Account Number"
if the number is the one you want
print the next 10 lines
else
skip the next 10 lines
else
keep looking
答案 1 :(得分:1)
首先,fseek
用于移动文件指针而不是用于搜索。对于搜索文本,即您的案例中的帐户ID,有一些示例Trying to find and replace a string from file in C。要编写自己的代码,学习file handling functions的基本用法就足够了。此外,由于您的数据是结构化的(每11行代表一个帐户),您的代码可以加速。最后,您要做的是数据库软件提供的内容,并且很难像商业软件一样快地实现您自己的数据库。
答案 2 :(得分:0)