#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
//YOUR_CODE
string word;
cout << "enter a word: ";
getline(cin, word);
int middle = word.length();
middle = middle/2;
if(middle % 2 == 0)
{
middle = word.length();
middle = (middle/2)+1;
floor (middle);
}
int last = word.length();
cout << word[0] << word.at(middle) << word.at(last);
}
我不确定为什么getline不起作用。检查我正在使用的书,调试器没有帮助。有谁知道它有什么问题吗?在调试器中,它表示值:&lt;无法访问&gt;。任何帮助表示赞赏。
答案 0 :(得分:1)
word
的作业没有问题。问题是word.at(last)
。字符串位置从0
运行到length-1
(就像数组一样)。由于last
为word.length()
,因此您尝试访问该范围之外的字符。尝试:
last = word.length()-1;