【发布时间】:2015-02-20 02:32:46
【问题描述】:
当我在我的代码中询问“您想输入更多查询吗?输入 (y/n)”时按“y”尝试输入第二个查询作为输入时出现以下错误:
在抛出 'std::out_of_range' 的实例后调用终止 什么():basic_string::substr 中止(核心转储)
我的代码是:
#define SIZE 100
#include "SQLParser.cpp"
using namespace std;
int main() {
string s[SIZE];
SQLParser parser;
char in;
int i=0;
cout<<"Enter the input queries:";
do
{
//try
//{
std::getline(std::cin,s[i],'\n');
//cin.ignore(100000, '\n');
//cout<<" "<<s[i]<<"\n";
parser[i].sql=s[i];
parser[i].ProcessSQL();
cout<<"Do you want to enter more queries? Press (y/n):";
cin>>in;
cin.ignore(100000, '\n');
i++;
//}
/*catch (std::exception const &exc)
{
std::cerr << "Exception caught " << exc.what() << "\n";
}*/
}while(in!='n');
/*string s("CREATE TABLE tab(aa int,bb string, cc string)");
string s1("CREATE TABLE xyz(name string,gender char,age int,address string)");
parser.sql=s;
//parser1.sql=s1;
string s2("INSERT INTO tab(name,author,date) VALUES ('aa','bb','cc')");
//parser.sql = s2;
parser.ProcessSQL();
parser.sql = s1;
parser.ProcessSQL();
*/
return 1;
}
请帮助我的代码有什么问题。
【问题讨论】:
-
什么是
s?您能否包含更多代码,最好从调试中删除杂乱无章的代码? -
从 eroor 消息中,我了解到 s 是字符串向量,不是吗?那我猜你没有添加足够的元素。
-
int main() { string s[SIZE]; SQLParser 解析器;字符输入;诠释我=0; cout>在;我++; //} /*catch (std::exception const &exc) { std::cerr
-
SIZE #定义为 100
-
不要在 cmets 中粘贴代码。请编辑您的问题并在此处发布代码。
标签: c++