晚上好!
我正在完成我在这个C ++课程中的第一个学期编程(完全是编程新手)并且有一个最终项目。我们被要求做的是创建一个模拟社交媒体网络(类似于Facebook),您可以在其中注册,发帖,关注其他用户以及其他此类基本功能。
该项目背后的基本思想是编写新信息并将其附加到文本文件中,并将其用作数据库。
我现在遇到的一个问题是,我发现如果所有行的长度相同,则只能读取文件的特定行。例如,当我想查看用户的公共信息(例如他们的姓名和职业)是我必须从特定行读取时,问题就出现了,但这些行可能包含不同长度的信息。例如,如果不同的用户遵循不同数量的人,那么这样就不会使每行都有相同数量的单词。
到目前为止,这是我项目的一个非常简洁的骨架代码,以节省一些空间:
project.cpp(implementation)
#include <iostream>
#include <string>
#include "project02.h"
using namespace std;
void Login()
{
//login screen, if user chooses to sign up then it calls setUserInfo()
}
//includes setter and getter functions but I won't need to list them here
project.h(标题)
#ifndef PROJECT02_H
#define PROJECT02_H
using namespace std;
void Login();
class UserInfo
{
//class for setting and getting user information
};
projectmain.cpp(main)
#include <iostream>
#include <string>
#include "project02.h"
using namespace std;
int main()
{
Login();
return 0;
}
这就是它的要点。当新用户注册时,所有输入的用户信息被附加到文件中以供以后使用。现在主要关注的是,当我以后必须阅读特定用户的信息时,如果它们的长度不同,我将无法读取特定的行,所以我想知道是否有人有关于我如何能够的建议在考虑到这些功能的情况下处理这个项目。
任何见解都会非常感激=)
编辑:我正在使用ifstream阅读文件。这是我知道怎么回事的唯一方式。
答案 0 :(得分:0)
你几乎已经发现了这个问题。由于您的问题没有明确的答案,请考虑我的提示作为起点:
\n
,您当然可以读取文件的特定行。但是你必须通过计算你跳过的所有行来从头开始寻找整个文件。seek()
)。那么你可能需要一种标记线条长度的方法,因为你要将较短的线条延伸到公共长度。