C ++使用getline,输出在开头带有一个额外的空间
c++ using getline, output comes with an added space at the beginning
我使用 getline 读取带有空格的数据,我反转它。 但它会返回添加的空间。您可以看到下面的代码。
#include <iostream>
#include <string>
using namespace std;
int main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
string s;
getline(cin, s);
for (int i = s.length(); i >= 0; i--) {
cout << s[i];
}
return 0;
}
当我进入时:aaa 它回馈:AAA
首先添加的空间。
如何解决这个问题?
当i
等于字符串长度时,访问s[i]
是未定义的行为,因为它已经过了字符串的末尾。
通过更改for
循环起始子句进行修复。
for (int i = s.length() - 1; i >= 0; i--) {
相关文章:
- 有一个打印语句的函数是一种糟糕的编程实践吗
- VSCode-有一个红色下划线,但程序构建和运行正确,并且出现配音错误
- 如果有一个模板构造函数只有一个泛型参数,为什么我必须有一个复制构造函数
- 有没有可能有一个只有ADL才能找到的非好友功能
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- 在学习数据结构之前对STL有一个了解是好的吗?
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上
- 是否可以在C++中有一个"generic"模板参数,该参数可以是非类型模板参数或类型?
- 我的输出中有一个额外的 0,为什么会这样
- 节点是否为空,即使它有一个值?
- 将数组信息存储到 c++ 向量中有一个"Access violation reading location"
- 在 Stream C++ 文本之前有一个额外的换行符
- 我可以有一个 ELI5 作为参考和指针以及何时使用它们吗?
- 在 C++ 中声明 const 对象需要用户定义的默认构造函数.如果我有一个可变成员变量,为什么不呢?
- C++中是否有一个函数可以为您获取指向该节点的所有指针的地址空间
- 是否有一个很好的方法可以在C 11中打印出像JSON一样的Trie结构(仅迭代解决方案)的扁平命名空间
- glm:不是类型或命名空间吗?我的标题中有一个令人困惑的错误
- Eclipse CDT/Qt:有一个Qt Gui项目依赖于工作空间中的另一个c++项目