我使用 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]
是undefined behaviour , 因为它超过了字符串的末尾。
通过更改 for
循环起始子句来修复。
for (int i = s.length() - 1; i >= 0; i--) {
关于c++使用getline,输出在开头带有一个额外的空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58389304/