问题标签 [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 投票
1 回答
69 浏览

c++ - 从字符串中检测数字而不是字母的方法。(目前使用 istringstream)

我做了一个简单的游戏程序,要求玩家有一个选项来撤消一些移动(撤消 n)。

我让用户输入一个命令(撤消 n),它将后半部分放入一个 int 中。基本上,我希望程序在用户输入除数字以外的任何内容时停止用户。因此,如果用户输入 undo f 它不会将 f 转换为它的数字形式(或者至少我认为它会这样做)但它会导致错误。我搜索了一段时间,找不到任何对我有用或有意义的东西。

如果可能的话,我只想使用我目前拥有的方式或使用 cin。另外,请原谅我,但我仍在学习 C++ 并且不知道许多高级技术,所以如果有一种复杂的方法可以做到这一点,如果我需要一点理解,请原谅我。

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

0 投票
0 回答
14289 浏览

c++ - std::getline 处理 \n、\r 和 \r\n

我正在从文本文件中读取数据,并使用std::getline. 默认情况下,这最多读取一个换行符\n。我的代码依赖于此。

但是,事实证明我必须处理可能在不同环境中生成的数据,即换行符是\r(Mac)、\n(Unix) 或\r\n(Windows)

是否有一个简单的修复,以便我可以做类似的事情

但是让它首先寻找\r\n然后然后\r\n会独立于生成它的任何环境返回一条“线”?

或更笼统地说:有没有一种方法可以std::getline为任何类型的常用换行符/回车符返回“行”?

目前我想出的只是

基于这样的假设,假设存在换行符,相关分隔符将产生最短的“行”。还要考虑到如果它是分隔符,\r并且将具有相同长度的字符串这一事实\r\n\r\n

0 投票
2 回答
5219 浏览

c++ - stringstream with multiple delimiters

This is another question that I can't seem to find an answer to because every example I can find uses vectors and my teacher won't let us use vectors for this class.

I need to read in a plain text version of a book one word at a time using (any number of) blank spaces
' ' and (any number of) non-letter character's as delimiters; so any spaces or punctuation in any amount needs to separate words. Here's how I did it when it was only necessary to use blank spaces as a delimiter:

EDIT: An example of text read in, and how I need to separate it.

"If they had known;; you wished it, the entertainment.would have"

Here's how the first line would need to be separated:

If

they

had

known

you

wished

it

the

entertainment

would

have

The text will contain at the very least all standard punctuation, but also such things as ellipses ... double dashes -- etc.

As always, thanks in advance.

EDIT:

So using a second stringstream would look something like this?

0 投票
1 回答
1205 浏览

c++ - 使用 getline 或 istringstream 检测换行符

在我的程序中,我要求用户通过 getline 输入,然后在一个单独的类中,将字符串拆分为三个不同的字符串,然后我将通过预先确定的值列表进行检查。

现在的工作方式,如果有人输入了无效的命令,我会显示“INVALID”

我遇到的问题是一个只包含空格或一个换行符的字符串。

这是我正在尝试做的事情:

变量 tempCheck 基本上意味着如果它超过三个字(我想要的命令限制),那么它就是无效的。我还认为有一个空字符串会起作用,但是当没有输入任何内容时,它只会以无限循环结束,但我只是按 Enter 键。

这是我希望我的输入做的事情(粗体是输出):

这是正在发生的事情:

它进入了一个看似无限的循环。我仍然可以输入东西,但是,它们实际上并没有影响任何东西。例如,键入 QUIT 什么都不做。但是,如果我重新启动程序并仅键入“QUIT”而不尝试仅使用换行符或仅使用空格,则会得到预期的输出:

那么,我如何告诉 getline 或我的 istringstream,如果用户只是输入一堆空格然后按 Enter,或者如果用户只是按 Enter,则显示无效并返回?无论如何只用 getline 或 istringstream 就可以做到这一点吗?

0 投票
0 回答
149 浏览

header - 使用 istringstream 计算字符串标记的长度

我收到一条错误消息,说没有匹配函数调用涉及 getline(tokenizer, " "); 的“getline”。我不知道如何解决这个问题,我尝试过包含其他一些标题,但我只是不断提出更多错误。

0 投票
2 回答
8007 浏览

c++ - 我的逆波兰符号计算器需要帮助

我正在开发一个制作反向波兰符号计算器的程序,我想知道是否有人可以给我一些提示。计算器将从用户那里获取一行,例如2 3 + 7 4 - *;中间有空格,我想在每次操作后打印一个结果。

这是我的代码的一部分

结果我得到了奇怪的数字。我在我的堆栈中阅读正确吗?

0 投票
2 回答
8505 浏览

c++ - C ++将ifstream管道传输到stringstream

我正在重载我的 istream 运算符,所以我可以std::cin用我的对象替换。我知道我必须为它提供一个空的字符串流才能使最终输出正常工作。

我想像这样std::ifstream输入一个std::stringstream

这可能吗?这是一个示例原型代码:

我对任何以“使用 Boost”开头的答案都不感兴趣 :) 这是一个纯粹的标准 C++ 项目。感谢您的任何帮助或指点。

现在我得到:

0 投票
2 回答
75 浏览

c++ - 读取空间分隔的数据并将其推入适当的容器中

我面临一个问题,如何从输入流中读取空格分隔的数据。

假设我们需要输入 J 123 7 3 M。第一个是字母,最后一个是字母。其余的是整数。

但是这段代码并不能解决问题。我尝试了很多组合,但仍然没有。

我在想我可以将所有内容都读取为 char,然后将其转换为 int。

我知道有类似的问题,但就我而言,我想在没有字符串而不是动态数组的情况下解决这个问题(可能是动态数组但没有设定长度)。

编辑

我设法通过以下方式阅读了这样的stram:

但是有一个问题:写“F 1 23 2 2 W”会显示F12322@。不知道为什么最后有“@”。有什么想法吗?

编辑2:

在while循环解决问题之后。

0 投票
1 回答
354 浏览

c++ - 初学者:从文件中读取并使用 istringstream

我以前从未使用过 istringstream。我之前只使用 1 个分隔符分割行,所以我不知道如何使用 istringstream。我正在从一个看起来像这样的文件中拆分行:

表,通缉,100

汽车, 出售, 5000

我需要拆分字符串,然后创建一个结构数组。我已经设置了一个结构我只是不知道如何拆分字符串。我的结构称为 item 并且具有类型:字符串类型、布尔销售、双倍价格。出售,我想让它说 1 如果它是出售的,0 如果它是想要的。基本上,我想拆分它,以便创建新变量、类型、销售和价格,然后在我的项目结构中创建一个 newItem{type, sale, price} 并从那里开始。代码示例将非常有帮助。非常感谢。

0 投票
0 回答
547 浏览

c++ - 文本文件有多个空格后getline停止读取文件

您好,我是stackoverflow的新手,所以请原谅我犯的任何新手错误。我有一个正在尝试用 C++ 构建的程序,但遇到了一些问题。该程序应该让用户输入文件名,然后读取文件并计算文本文件中的字数并打印最后十个和前十个。一旦我在文本文件上为间距或包含大量单词的文本文件点击任何返回,我的程序似乎无法正常工作。任何人都可以帮助引导我走向正确的方向。

谢谢!!