我正在编写代码来解析C++中的输入,但是无法修复这个错误。请帮助我调试它并解释代码,因为我是从某个地方复制的,不知道它遵循的逻辑。
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
string line = "GeeksForGeeks is a must try";
// Vector of string to save tokens
vector <string> tokens;
// stringstream class check1
stringstream check1(line);
string intermediate;
// Tokenizing w.r.t. space ' '
while(getline(check1, intermediate, ' '))
{
tokens.push_back(intermediate);
}
// Printing the token vector
for(int i = 0; i < tokens.size(); i++)
cout << tokens[i] << '\n';
}
最大的问题是缺少提供StringStream的#include
。之后,还有一个关于for循环的警告。它警告不要使用不同的整数类型进行比较。int
是带符号的,这意味着它是否定的。tokens.size()
返回一个size_t
,它是无符号的。整数行为可能会创建一些难以跟踪的bug,因此最好在可能的情况下避免混合使用有符号和无符号。如果您至少使用-wall-wextra
进行编译,您还会看到该警告。使用基于范围的for很容易克服该警告。
使用namespace std;
被认为是错误的做法。
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main() {
std::string line = "GeeksForGeeks is a must try";
// Vector of string to save tokens
std::vector<std::string> tokens;
std::stringstream check1(line);
std::string intermediate;
// Tokenizing w.r.t. space ' '
while (std::getline(check1, intermediate, ' ')) {
tokens.push_back(intermediate);
}
// Printing the token vector
for (auto i : tokens) {
std::cout << i << '\n';
}
}
这段代码工作的主要原因是std::StringStream
。流自然在空格上中断。因此,当我们向std::StringStream
提供对象line
时,它能够自动解析单词。这些字被放入std::vector
、令牌
中。std::vector
是分配在堆上的数组,可以在需要时增长。
就学习C++而言,互联网实际上并不是一个很好的资源,就像这个不完整的例子所展示的那样。我建议你买一本好书。
问题内容: 我正在使用以下设置 MacOS Mojave Python 3.7.1 Visual Studio Code 1.30 Pylint 2.2.2 Django 2.1.4 我想使用衬棉使我的生活在Visual Studio代码中更轻松一些,但是,每次导入我都声明“未解决的导入”。即使是默认的django导入(即从django.db导入模型)。 我认为这是因为它没有看到虚拟环境pytho
本文向大家介绍C ++中的输入迭代器,包括了C ++中的输入迭代器的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将讨论一个程序,以了解C ++中的输入迭代器。 输入迭代器是STL中五个最弱,最简单的迭代器之一。它们主要用于串行输入操作,在该操作中,每个值都被读取为一个值,然后迭代器移至下一个值。 示例 输出结果
我编写了以下代码: 我的终端支持Unicode,在Linux上使用gcc 8.2.1编译。
我正在使用Eclipse版本:Oxygen.1a Release(4.7.1a)。我正在尝试创建一个Web服务应用程序。但是,当我尝试创建一个接口类与导入javax.jws.WebService;我得到错误作为导入javax.jws无法解决 我正在使用tomcat 8.5,并在java构建路径中添加了库。
我这里有一段简单的代码: 我收到一个错误,上面写着: 文件 根据提供的解决方案,我尽了最大努力。有趣的是,我在另一个表上有另一个查询,效果很好。非常感谢您的帮助。提前谢谢。 这是表的架构: ;
本文向大家介绍Pycharm代码无法复制,无法选中删除,无法编辑的解决方法,包括了Pycharm代码无法复制,无法选中删除,无法编辑的解决方法的使用技巧和注意事项,需要的朋友参考一下 菜单栏,tools--去掉勾选的Vim Emulator这个仿真插件就好了。 以上这篇Pycharm代码无法复制,无法选中删除,无法编辑的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支