本文整理汇总了C++中StringTokenizer::setInput方法的典型用法代码示例。如果您正苦于以下问题:C++ StringTokenizer::setInput方法的具体用法?C++ StringTokenizer::setInput怎么用?C++ StringTokenizer::setInput使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StringTokenizer
的用法示例。
在下文中一共展示了StringTokenizer::setInput方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main (int argc, char * const argv[]) {
StringTokenizer st;
fstream infile;
infile.open(DB_FILE_PATH);
bool fromFile = true;
while (true) {
fromFile = !infile.eof();
if (fromFile)
getline(infile, input, '\n');
else
getline(cin, input, '\n');
st.setInput(input);
cmd = st.next();//get command
////////////////////////////////SELECT///////////////////////////////////////
if (eq(cmd,SELECT_CMD)) {
////////////////TEST
fstream File;
File.open(SELECT_TEST_PATH, ios::out);
////////////////END TEST
vector<string> rowNames;
token = st.next();
while (!ueq(token,FROM_EXPR)) {
rowNames.push_back(token);
token = st.next();
}
tableName = st.next();
Table t = db.tables[tableName];
if (rowNames.size() == 1 && eq(rowNames.at(0), ALL_LITERAL)) { //add all if *
rowNames.clear();
for (int i = 0; i < t.nameOfCols.size(); i++ ){
rowNames.push_back(t.nameOfCols[i]);
}
}
vector<string> conditions;
if (st.hasNext()) {
token = st.next();
}
if (eq(token, WHERE_EXPR)) {
while (st.hasNext()) {
token = st.next();
if(!ueq(token, AND_STATEMENT))
conditions.push_back(token);
}
}
for (int i = 0; i < t.rows.size(); i++) {
db.r = t.rows.at(i);
bool showRow = true;
for (int j = 0; j < conditions.size(); j++) {
string colName = conditions.at(j); j++;
string condType = conditions.at(j); j++;
string condValue = conditions.at(j);
string cellValue = db.r.at(t.colNames[colName]);
if (eq(condType, CND_EQ)) {
showRow = eq(condValue, db.r.at(t.colNames[colName]));
}
if (eq(condType, CND_GE) || eq(condType, CND_LE)) {
istringstream s0(cellValue);
int i0;
s0 >> i0;
istringstream s1(condValue);
int i1;
s1 >> i1;
if (eq(condType, CND_GE)) {
showRow = (i0 > i1);
}
if (eq(condType, CND_LE)) {
showRow = (i0 < i1);
}
}
if (!showRow)
break;
}
if(showRow){
for (int j = 0; j < rowNames.size(); j++) {
cout << rowNames.at(j) << " = " << db.r.at(t.colNames[rowNames.at(j)]) << " ";
}
//.........这里部分代码省略.........