我正在为任务创建一个银行终端。它具有添加客户的能力,每个客户包含5个不同的变量,分别用于名称,地址,社交编号,雇主和收入。一旦将这些变量填满并退出终端,便将它们写入文件。

我遇到的问题是,启动终端时,我需要从文件中读取这些值,每个值都位于单独的行上,并将它们存储在各自的变量中,以便在addClient()函数中使用。这是使您的事情比提交整个项目容易的代码段:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
  using namespace std;

  std::ifstream infile2("client-info.txt");

  //Strings used for respective items from file
  string clientName, clientAddress, clientSocial, clientEmployer, clientIncome;

  //Here is where I am having the problem of reading the info from the file
  //line by line and storing it in respective variables.
  while (infile2)
  {
     getline(infile2,clientName);
     getline(infile2,clientAddress);
     getline(infile2,clientSocial);
     getline(infile2,clientEmployer);
     getline(infile2,clientIncome);

     client.addClient(clientName, clientAddress, clientSocial, clientEmployer, clientIncome);
  }
  infile2.close();
}


例如,文件就这样存储。

John Doe
123 Easy Lane
123-45-6789
USSRC
36000


我遇到的问题是我无法找出一种可靠的方法来获取每一行并将它们存储在各自的字符串中。对于作业,我将不必处理空格等。因此,第0-4行适用于一个客户端,第5-9行适用于另一个客户端,依此类推。

朝正确的方向前进将不胜感激,谢谢!

最佳答案

如果addClient函数像您一样接受5个参数,则您当前的main函数已经解决了您的问题。

如果要将这5个字符串放入单个字符串中,请在addClient函数中使用该单个字符串。

您可以创建一个类:

class ClientInfo
{
 private:
   string clientName;
   string clientAddress;
   string clientSocial;
   string clientEmployer,;
   string clientIncome;
public:
  ClientInfo(string name, string addr, string ssn,
                 string employer, string income):
                  clientName(name), clientAddress(addr), clientSocial(ssn),
                  clientEmployer(employer), clientIncome(income)
  {
  }
};


然后在您的main中,可以执行以下操作:

ClientInfo currentClient(clientName, clientAddress,
                clientSocial, clientEmployer, clientIncome);
client.addClient(currentClient);

关于c++ - 从文件读取行并存储在单独的字符串变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16159442/

10-11 22:38
查看更多