gpt4 book ai didi

c++ - 字符提取与字符串提取有何不同?

转载 作者:行者123 更新时间:2023-11-28 02:40:26 25 4
gpt4 key购买 nike

当禁用字符和字符串的空格跳过时,行为是不同的。似乎提取整个字符串(包括空白字符)的唯一方法是使用 chars 和 noskipws。但这对于字符串是不可能的,因为它不会在第一个空格后提取。

std::string test = "a b c";
char c;
std::istringstream iss(test);
iss.unsetf(std::ios_base::skipws);
while (iss >> c)
std::cout << c;

将输出a b c,但将c更改为string,它只输出a

最佳答案

字符串的 >>> 运算符提取单词,并在它看到的第一个空白区域。如果它不跳过初始白色空格,然后它立即停止,并返回一个空字符串。

您没有说明您希望如何分隔字符串。读书直到行尾,只需使用 std::getline。读到文件末尾,你可以使用类似的东西:

std::istringstream collector;
collector << iss.rdbuf();
std::string results = collector.str();

这不是最有效的,但如果文件很小,它会做。

关于c++ - 字符提取与字符串提取有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26166704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com