Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何读取字符串?_C++_String_Input - Fatal编程技术网

C++ 如何读取字符串?

C++ 如何读取字符串?,c++,string,input,C++,String,Input,我想为aX^a+bX^B+cX^C等方程编写一个类POLY。。。 我想得到构造函数的两个输入,如下所示: POLY(int input_degree,string input_factor); input_degree包含如上所述的“A”,并且input_factor包含类似于以下示例的因素:“12 3-2”。 我想写一些代码,一个字符一个字符地读取input\u factor,当有一个空格时,它会保存第一个因子(如“A”),然后保存下一个因子。 但是我不知道计算机是如何读取字符串的(或者我必

我想为aX^a+bX^B+cX^C等方程编写一个类POLY。。。 我想得到构造函数的两个输入,如下所示:

POLY(int input_degree,string input_factor);
input_degree
包含如上所述的“A”,并且
input_factor
包含类似于以下示例的因素:“12 3-2”。 我想写一些代码,一个字符一个字符地读取
input\u factor
,当有一个空格时,它会保存第一个因子(如“A”),然后保存下一个因子。
但是我不知道计算机是如何读取字符串的(或者我必须知道吗?)

读取字符串并将其信息提取到某种结构中的过程称为解析。有很多方法可以做到这一点,哪种方法是合适的取决于您想要做什么,它需要运行多快,您有多少可用内存以及其他各种事情

你可以写一个简单的循环,它遍历每个字符,并根据一些存储当前状态的变量来决定要做什么,所以你可能有一个标志,表示你在一个数字的中间,你看到另一个数字,所以你把那个数字添加到另一个变量中,这个变量正在收集当前数字的数字。当当前数字完成时(可能您发现一个字符是空格),您可以获取累加器变量中的内容,并使用标准库将其解析为一个数字

或者,您可以更充分地利用标准库功能。对于您的示例,您会发现,
std::istringstream
可以做您想做的事情,只需告诉它重复从中提取
int
s,直到流结束。我建议搜索一个好的C++输入流教程-任何应用于从标准输入中读取的使用“代码> STD::CIN < /代码>将是相关的,就像 STD::ItestIngs,<代码> CIN < /Cord>是一个输入流,所以具有相同的接口。
或者,您可以使用一个完整的解析库,如
boost::spirit
-完全超出您的场景,但如果您需要解析结构化配置文件或整个编程语言,这种工具非常有用。

例如,使用
std::string操作符[]
。但你也许应该读一读:拉贾大学在哪里?你说的是哪所大学@EdHeal?我在问题的任何地方都没有看到它。它在海报资料中。@EdHeal?它在伊朗马修为您的各种建议