问题标签 [istringstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2419 浏览

c++ - operator>> 可以读取 int hex AND 十进制吗?

我可以说服operator>>C++ 读取一个hex值 AND 和一个decimal值吗?下面的程序演示了读取十六进制是如何出错的。我希望istringstream能够同时阅读hexdecimal

0 投票
1 回答
765 浏览

c++ - 字符串流 istringstream 的 C++ 问题

我正在阅读以下格式的文件

其中项目是:贷款ID、本金、月份、利率。

我不确定我的输入字符串流做错了什么,但我没有正确读取这些值,因为只有贷款 ID 被正确读取。其他一切都是零。对不起,这是一个家庭作业,但我只是想知道你是否能帮助我找出我的错误。

0 投票
2 回答
14246 浏览

c++ - C++ - 重复使用 istringstream

我有一个代码用于读取在线存储的浮点数文件,如下所示:“3.34|2.3409|1.0001|...|1.1|”。我想使用 istringstream 阅读它们,但它不像我预期的那样工作:

在标记点,仅第一次将行复制到单独的流中。在下一次迭代中它不起作用,它什么也不做。我希望可以在每次迭代中不构造新的 istringstream 对象的情况下使用更多次。

0 投票
1 回答
784 浏览

c++ - 在模板化函数中从 istream 中提取 bool

我正在将我的字段类读取函数转换为一个模板函数。int, unsigned int, long,我有和的字段类unsigned long。这些都使用相同的方法从 an 中提取值istringstream(仅类型更改):

棘手的部分是bool(Boolean) 类型。Boolean: 有许多文本表示形式
0, 1, T, F, TRUE, FALSE以及所有不区分大小写的组合

以下是问题:

  1. boolC++ 标准说什么是使用流提取运算符提取 a 的有效数据?
  2. 既然布尔值可以用文本来表示,那么这涉及到locales吗?
  3. 这个平台依赖吗?

我想通过不编写自己的bool输入处理程序来简化我的代码。

我正在使用 MS Visual Studio 2008(版本 9)、C++ 以及 Windows XP 和 Vista。

0 投票
5 回答
4044 浏览

c++ - 非复制字符串流

所以istringstream在初始化时复制字符串的内容,例如

我想知道是否有一种方法可以在不复制内容的情况下std::istringstream使用给定的缓冲区。c_str这样,它就不必在将 传递给作为参数的std::istringstream&函数之前复制大量内存。istream&

我一直在尝试做的是将一些只接受std::ifstream&参数(它们主要是解析器)的函数也转换为接受istream&。我必须为此创建自己的istream子类吗?

0 投票
8 回答
80964 浏览

c++ - istringstream、ostringstream 和 stringstream 有什么区别?/ 为什么不在每种情况下都使用 stringstream?

我什么时候使用,std::istringstream为什么不应该只在每个场景中使用(是否存在任何运行时性能问题?)。std::ostringstreamstd::stringstreamstd::stringstream

最后,这有什么不好的(而不是使用流):

0 投票
1 回答
346 浏览

c++ - C++:关于使用 getline() 从外部文件读取的后续问题。如何获取文件数据的子集?

我需要从外部文件中读取数字并将它们存储在整数向量中。多亏了 Howard Hinnant 和 wilhelmtell,我现在可以做到这一点,他们耐心地帮助找出了为什么我的编码昨天没有工作。

我一直在试图弄清楚如何将附加功能合并到代码中,但我已经用尽了我对流的了解,希望得到一些建议。

我希望能够处理包含多组数据的文件。是否可以仅将文件中的某些数据提取到向量中?我想最终得到几个包含来自文件不同部分的数据的向量。我在网上搜索,但没有看到任何提及这个。

这是我要从中获取数据的代码以及一个文件示例(我们称之为“测试”)。


编辑: 我根据 CashCow 的建议编辑了代码。我现在可以从数据文件中获取一个块。但我不知道如何获得我想要的块。如果我按原样运行代码,我会得到一个包含元素 2、5、8 的向量(这不是我想要的)。为了获得vectorTwo(在我制作的示例中为4,5,6),我尝试在while语句周围添加它:

它不起作用。我没有从运行代码中得到任何结果(虽然它已编译)。任何人都可以看到问题是什么?我想我可以使用这个语句来搜索我需要的数据块的标题。


//这里是示例文件的内容

vectorOne // 一个向量的数据子集标识符

'1' '2' '3'

vectorTwo // 我如何得到这个向量?还是其他任何一种载体?

'4' '5' '6'

vectorThree // 另一个向量的数据子集的标识符

'7' '8' '9'

// 代码:'\'' 字符是行分隔符。直到第一个 ' 之前的所有内容都被忽略,然后直到下一个 ' 之前的所有内容都是数字的一部分。这一直持续到逻辑失败(文件结束)。我怎样才能让它停在数据块的末尾呢?

0 投票
2 回答
33996 浏览

c++ - 在 C++ 中使用 istringstream 将字符串拆分为整数

我正在尝试使用istringstream将一个简单的字符串拆分为一系列整数:

我得到:

为什么最后一个元素总是出现两次?如何解决?

0 投票
3 回答
1347 浏览

c++ - 循环中的C ++ istringstream不改变其值

我对 c++ 相当陌生,并且遇到了一个问题,即通过单独搜索我找不到解决方案。

问题是,为什么 istringstream 在下面的循环中永远不会改变它的值?

它从 dirs[0] 和 dirs[1] 中获取值,并且永远不会将它们更改为递增的 int i。顺便提一句。dirs[ i ] 和 dirs [ i + 1 ] 中的值存储为十六进制值(例如 0F9C8924)。

下面是我的最新设置,我尝试了其他几种方法,但没有成功,例如在循环中使用 istringstream 并使用 ios_base::trunc 等。

等等,确实有不同的值并且dirs[ i ]被正确读取,但是当试图通过 istringstream 将字符串十六进制转换为无符号整数时,它永远不会采用新值。

countdirs是一个全局变量,count在另一个函数中增加,它的值在dirs.

很抱歉,如果以前有人问过这个问题,但我发现的解决方案对我不起作用。比如ss.clear()while( ss >> f )

提前感谢您提供的任何帮助。

0 投票
3 回答
4244 浏览

c++ - 如何在char []中获取两个用空格分隔的整数?

我将得到一串看起来像这样的数字。

用空格分隔的两个整数。

输出将是 57。

我试过使用,

但每次我运行它时,只有 a 是正确的,b 不是。

还有什么其他功能可以帮助我?或者这只是我遇到的一个编码问题?

我已经在答案中得到了两种建议。

谢谢大家的时间。其他方法将不胜感激。