C++最多读取一个字符或另一个字符
C++ read up to a character or another character
我想知道是否可以使用
istream& get (char* s, streamsize n, char delim)
例如,读取到+或-。我在想类似于cin.get(char[],'+'|'-')的东西,或者是否有其他聪明的方法可以做到这一点。
没有标准的实用程序,因为std::getline使用单个分隔符。
但是,您可以将整个输入读取为字符串(例如使用std::getline
),然后使用接受多个分隔符的std::string::find_first_of
进行解析:
在字符串中搜索与其参数中指定的任何字符匹配的第一个字符。
您可以使用以下代码:
for (i=0;i <20;i++)
if(!(cin.peek == 43))
{
get (variable);
}
这样做的目的是使用cin.peek()查找下一个字符,返回下一个角色的ascii值。
如果下一个字符不等于delim,则继续读取下一个字符串
相关文章:
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何检查一个c++字符串中有多少相同的字符/数字
- 使用.find函数在c++中查找字符和另一个字符之间的大小
- 我的目标是编写一个程序来计算和存储字符串在字符数组中出现的位置
- 关于字符数组,我正在尝试将数组中的每个字符分配给另一个值
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 使用动态分配将 char* 复制到另一个字符**
- 将字符向量复制到另一个向量
- 如何将一个结构的字符数组复制到结构的另一个字符数组中?
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 计算在同一位置至少包含一个常用字符的不同字符串对
- 如果我们在其中输入一个整数,则字符会给出整数作为输出,但是当分配给它一个整数时,这不会发生。为什么?
- 如何检查一个字符是否与字符数组中的另一个字符匹配?
- C++:使用另一个字符将一个字符大写
- 我可以得到一个字符 * 到一个 std::sregex_iterator 匹配 str() 吗?
- C ++读取用户输入的字符一个一个符号
- 遍历数组或从打开的文件中获取字符 - 一个比另一个有什么优势
- 将文本文件的内容一个字符一个字符地读入矢量,不跳过空白或新行
- 这是更快和更有效的,处理一个字符一个字符作为字符或流