我有结构成员从XML获取分隔符的值。我想使用该结构成员作为分隔符。但由于getline()
函数仅将分隔符作为字符,因此我的“I”已停留在那里。
istream& getline (istream& is, string& str, char delim)
我在代码中做了以下事情: -
string ABC = struct.delimiter; // Here struct.delimiter is takes value of
d delimiter from XML delimiter = '='
我希望用作
getline(string1,string2, ABC);
有可能吗? 要么 还有其他办法吗?
答案 0 :(得分:0)
使用getLine无法实现这一点,我知道这样做的最好方法是获取行,将其存储在字符串中并使用find()函数查找分隔符。
string string; // Your line
string ABC = struct.delimiter; // Delimited
getline(input, string); // Get line from stream - Thx Kevin
string subStr = str.substr(0, str.find(ABC)); // this will get you the first segment
从这里开始,您可以开发循环以查看读取数据并查找所有段。
答案 1 :(得分:0)
如果ABC
保证长度为单个字符,您可以使用ABC[0]
从字符串中获取第一个字符:
getline(string1, string2, ABC[0]);
或者只需使ABC
成为char
即可使保证更加明显。
char ABC = struct.delimiter; // (assuming struct.delimiter is also a char,
// if not use srtuct.delimiter[0])
getline(string1, string2, ABC);