【问题标题】:C++ reading from file and adding elements to string vectorC++ 从文件中读取并将元素添加到字符串向量
【发布时间】:2015-04-26 22:28:02
【问题描述】:

我有一个字符串向量

std::vector<string> userList;

我想从“password.txt”中读取,其排列如下:

  1. 姓名1
  2. 密码1
  3. (空白行)
  4. 姓名2
  5. 密码2

如何获取第 1 + 3C 行的名称并将它们添加到 userList 向量中

FILE * file;

    file = fopen("password.txt" , "w+");

【问题讨论】:

  • 请发布示例输入,您尝试过的代码,并解释您所说的“第 1 行 + 3C”是什么意思。
  • 使用ifstream 而不是FILE *
  • 我不知道“第 1 行 + 3C”是什么意思。也不清楚您要如何存储文件的内容。您想要userList 中的每个用户一个条目还是多个条目?另外,请注意以“w+”模式打开输入文件会破坏文件的内容。我想你想要模式“r”。

标签: c++ file-io vector


【解决方案1】:

您应该使用来自 c 的 ifstream 而不是 fopen

ifstream reader();
reader.open("password.txt");

现在使用getline 从文件中读取行。 每三行是一个用户名,因此您可以跳过所有其他行:

string line;
int i = 3;
while(getline(reader,line)){
   if(i == 3){
       userList.push_back(line);
       i = 0;
   }else{
       i++;
   }
}

或者您使用 mod 运算符获取每三行:

string line;
int i = 0;
while(getline(reader,line)){
   if(i % 3 == 0){
       userList.push_back(line);
   }
   i++;
}

【讨论】:

    猜你喜欢
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2021-04-04
    相关资源
    最近更新 更多