gpt4 book ai didi

c++ - 读取输入流而不提取

转载 作者:行者123 更新时间:2023-11-28 07:19:14 24 4
gpt4 key购买 nike

我正在尝试计算输入流中直到第一个非数字的字符数,而不是实际从流中提取字符。输入可以包含任意数量的字符。我需要这样做以确定在将数字存储在数组中的流中之前是否应该增长动态数组。

我仅限于以下库:iostream、cstring、cctype

我在想:

int counter = 0;
const char * s = cin.getline();

while( s[counter] <= '0' || s[counter] >= '9' )
{
counter++;
}

但是我在让它工作时遇到了一些麻烦。任何建议将不胜感激!

最佳答案

尝试这样的事情:

std::istream::pos_type start = is.tellg();

while (std::isdigit((is >> std::ws).peek()) && is.ignore())
;

counter = in.tellg();
is.seekg(start, std::ios_base::beg);

在这种情况下,空格算作非数字字符吗?如果是这样,从丢弃前导空格的 while() 循环中删除第二行。

关于c++ - 读取输入流而不提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19758362/

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