我的文字文件如下:
先生,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;
}
答案 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");
显然只有嵌套循环才有可能。