我想像这样从 abe_account 中选择 *
sqlite> select * from abe_account;
admin|Peter John|admin_account|password
Run Code Online (Sandbox Code Playgroud)
但我想在 C++ 中做到这一点并返回每个元素,例如
admin as vector x[0]
Peter John as vector x[1]
admin_account as vector x[2]
password as vector x[4]
Run Code Online (Sandbox Code Playgroud)
然后在我关闭 sqlite3_close(db) 时在外面使用它
如 cout << x[0] << endl;
我该怎么做,我试图 cout << str << endl;
但它什么也不打印。
下面的代码是我自己尝试的:
#include <iostream>
#include <sqlite3.h>
//g++ -o test test.cpp -lsqlite3
using namespace std;
int main()
{
sqlite3 *db;
sqlite3_stmt * stmt;
if (sqlite3_open("abeserver.db", &db) == SQLITE_OK)
{
sqlite3_prepare( db, "SELECT * from abe_account;", …Run Code Online (Sandbox Code Playgroud) 我试着做以下事情
myfile.open("file.txt");
while(!myfile.eof())
{
getline(myfile,sline);
delimiter = sline.substr(2,1);
}
cout << "Delimiter is " << delimiter << endl;
Run Code Online (Sandbox Code Playgroud)
我的file.txt是这样的
AD#Andorra#AN#AD#AND#20.00#Andorra la Vella#Europe#Euro#EUR#67627.00
AE#United Arab Emirates#AE#AE#ARE#784.00#Abu Dhabi#Middle East#UAE Dirham#AED#2407460.00
Run Code Online (Sandbox Code Playgroud)
它在运行时返回错误代码
terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)
我希望将值#作为我的分隔符,
我的.h文件得到了这个声明
#define LINE_DATA_DELIMITER ","
Run Code Online (Sandbox Code Playgroud)
我可以将LINE_DATA_DELIMITER重新定义为"#",而不是使用"#",我可以使用变量分隔符的值来定义.
更新:问题1已解决..我需要第二个问题的帮助谢谢!
我如何发送std::string到我的线程?
这是我的代码:
void* sendReminder(void*)
{
system("echo 'hello' >> buffer.txt");
}
int main()
{
string str1 = "somevalue";
pthread_t t1;
pthread_create(&t1, NULL, &sendReminder, NULL);
}
Run Code Online (Sandbox Code Playgroud) C++关于为Vector myVariable赋值
嗨,大家好.
我有这个结构
struct Point
{
int x,y;
}
Run Code Online (Sandbox Code Playgroud)
在我的main.cpp中我得到了类似的东西
int main()
{
vector<Point> myPoints;
myPoints[0].x = 1;
myPoints[0].y = 1;
myPoints[1].x = 2;
myPoints[1].x = 2;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到分段核心转储,设置值向量的元素有什么问题.
谢谢你的指导!
C ++如何使用模板对向量进行排序
大家好,谢谢您看我的问题。
我得到了一个Templates.h文件,它就是这种方式。
/* Template Less Than */
template<typename T>
bool lessThan(T a,T b)
{
return a<b;
}
/* Template greater Than */
template<typename T>
bool greaterThan(T a,T b)
{
return a>b;
}
/* Template Equals */
template<typename T>
bool equals(T a,T b)
{
return a==b;
}
Run Code Online (Sandbox Code Playgroud)
然后我上了这堂课
Map2D
Run Code Online (Sandbox Code Playgroud)
关于Map2D
class Map2D
{
protected:
int x;
int y;
public:
Map2D();
Map2D(int,int);
int getX();
int getY();
};
Run Code Online (Sandbox Code Playgroud)
在我的main.cpp中,我得到了Map2D的向量类
vector<Map2D> map2d;
Run Code Online (Sandbox Code Playgroud)
因此,现在我需要按X升序对它进行排序..我如何利用模板文件对它的X升序进行向量排序。。考虑一下以后我需要重载另一个以降序。
通常我会用
sort(map2d.begin(),map2d.end(),sortByX);
Run Code Online (Sandbox Code Playgroud)
并且sortByX将是带有重载其()运算符的结构。
但是现在的问题是,因为我得到了一个小于和大于的模板。如何使用升序对X进行排序,然后使用Templates.H的模板泛型函数对另一个X进行降序排序。
更新:
我认为我需要重载Map2D运算符>,<和==
但是我的问题是如何借助MyTemplates.h函数(如lesserThan,GreaterThan,equals)来重载它
谢谢。