错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
Error Unhandled exception at 0x76C9FD62 in test.exe: Microsoft C++ exception: std::out_of_range at memory location 0x006FF870. occurred
我尝试将句子中单词的每个首字母大写。 有人可以解释为什么我在输入带有空格 ex(asdasd asdasd(的单词后会出现一些错误。
#include <iostream>
#include <cstring>
#include <vector>
#include <sstream>
#include <string>
using namespace std;
int main()
{
char str[50];
char firstLetter;
int iASCII;
vector<string> vecString;
cin.getline(str, 100);
stringstream ss(str);
string sIndivWords;
char cSpace = ' ';
while (getline(ss, sIndivWords, cSpace))
{
vecString.push_back(sIndivWords);
}
iASCII = vecString[0].at(0);
if (iASCII >= 97 && iASCII <= 122)
{
for (int i = 0; i < vecString.size(); i++)
{
firstLetter = vecString[i].at(0);
putchar(toupper(firstLetter));
for (int j = 1; j < 20;j++)
{
cout << vecString[i].at(j);
}
}
}
}
正如其他人在他们的评论中所说,您的(非(幻数20
是问题所在,在这里:
for (int j = 1; j < 20;j++) {
cout << vecString[i].at(j);
}
当vecString[i]
少于 20 个字符时,这将崩溃!
尝试使用更合适的内容,例如:
for (int j = 1; j < vecString[i].length(); j++) {
cout << vecString[i].at(j);
}
作为旁注,您尝试使用vecString.size()
将失败,因为这会为您提供单独字符串的数量,而不是任何一个字符串的长度。
相关文章:
- 处理多个异常集合的C++方法
- 我在c++代码中生成了一个运行时#3异常
- 孤立代码块在结构中引发异常
- C++中的赋值发生,尽管右侧出现异常
- 从构造函数抛出异常时如何克服内存泄漏
- 异常属于C++中的线程还是进程
- 内存位置出现Microsoft C++异常:std::out_of_range
- 错误 在测试.exe 0x76C9FD62时出现未经处理的异常:Microsoft C++异常:内存位置0x006FF8
- 在 Project1.exe 中0x00007FFCA550A839处发生未经处理的异常:Microsoft C++异常
- Microsoft C++异常runtime_error在内存位置(代码 0x75A818A2)
- 位置处未处理的异常:内存位置处的Microsoft C++异常:std::length_error
- 内存位置0x0017F5E0处的Microsoft C异常:std::bad_alloc
- 在 1.exe 中0x77e4bef7时未处理的异常:Microsoft C++异常:内存位置 0x0012fb8c 处
- 0x771515ee Microsoft C++异常时未处理的异常:内存位置 0x0049f904 处的 std::ba
- Microsoft C++异常:std::out_of_range错误
- Microsoft Visual C运行时中出现未处理的异常
- cin命令导致内存位置出现Microsoft C++异常:std::bad_alloc
- 在应用Microsoft更新后,MSMQ在MQOpenQueue上抛出异常
- C++向量构造函数抛出std::out_of_range异常(Microsoft C++stdlib)
- Opencv PCA Microsoft c++ exception: cv::内存位置异常