从文本文件中读取并分配给单独的变量名称

时间:2017-08-22 10:33:58

标签: c++

我的文字文件如下:

  

先生,John Abrahm,美国,30岁,M   先生,哈利,英国,40,男
  先生,杰克,美国,50岁,M

我想这样做:

title=mr  
name=John Abrahm  
country=USA  
age=30  
gender=M

到目前为止,我的代码就像:

ifstream inputFile("text.txt");
string line;
while (getline(inputFile, line))
{
    istringstream ss(line);

    string title;
    string name;
    string country;
    char gender;

    ss >> title>>nam>>age>>country>>gender;
    cout <<gender<< endl;
}

1 个答案:

答案 0 :(得分:0)

您可能正在寻找strtok

示例代码:

x=as.list(1:3)
y=c(as.list(letters[1:2]),list(NULL))
ifelse(x<2,x,y)
#[[1]]
#[1] 1
#
#[[2]]
#[1] "b"
#
#[[3]]
#NULL

返回:

#include <stdio.h>
#include <string.h>

int main ()
{
  char str[] ="mr,John Abrahm,USA,30,M";
  char * pch;
  printf ("Splitting string \"%s\" into tokens:\n",str);
  pch = strtok (str," ,");
  while (pch != NULL)
 {
    printf ("%s\n",pch);
    pch = strtok (NULL, " ,");
 }
 return 0;
}

您可以将它们分配给变量,而不是打印字符串。你可能想看看这个answer

编辑:对于多行,假设您要提取5个不同数组中每行的所有5个条目。你首先要做的事情是:

Splitting string mr,JOhn Abrahm,USA,30,M into tokens:

mr

John Abrahm

USA

30

M

这为您提供了一个特定的行,您可以进一步划分

pch1 = strtok (str," \n");

显然只有嵌套循环才有可能。