动态 版块 发帖 消息 我的
Loading...
小绿叶技术博客
小绿叶技术博客
子版块
admin
483
cmake 代码:project(eisc) #项目名 cmake_minimum_required(VERSION 3.10) # 编译要求:cmake 要大于最低版本 3.1 set(CMAKE_C_COMPILER "gcc") set(CMAKE_CXX_COMPILER "g++") # 设置编译器, 如果没有配置环境变量,可以改为gcc具体文件路径 include_directories(/datadisk/eisc/server/mysql/mariadb1011/include/mysql/server/) # include_directories(/datadisk/eisc/server/mysql/mariadb1011/include/mysql/) # 添加 头文件搜索路径 (mysql.h 搜索路径) #add_executable("set" set.cpp) add_executable("sql" sql.cpp) # 生成可执行文件: 将 test.cpp 编译成 test.exe 可执行文件 target_link_libraries(sql /datadisk/eisc/server/mysql/mariadb1011/lib/libmysqlclient.so) # rm -rf ./build ; cmake ./ -Bbuild -G "Unix Makefiles" ; cmake --build build # rm -rf ./build ; cmake ./ -Bbuild ; cmake --build build # 编译到当前目录下的 build 文件夹 # 也可以不用指定 -G c++ 代码#include <stdio.h> #include <stdlib.h> #include <iostream> #include <string> #include "mysql.h" using namespace std; class MysqlDB { private: // private [ˈp raɪ vət] 私有 MYSQL mysql; MYSQL_ROW row; MYSQL_RES *result; MYSQL_FIELD *field; public: MysqlDB() { if( mysql_init( &mysql ) == NULL ) // 判断数据库初始化 { cout << "init error, line: " << __LINE__ << endl; exit(-1); } } ~MysqlDB() // 波浪号是析构函数,删除创建的对象时执行。 不会返回任何值和带参数。作用:跳出程序释放资源 { mysql_close( &mysql ); } void connect( string host, string user, string passwd, string database ) { //成功返回MYSQL指向的指针,失败返回NULL if( !mysql_real_connect( &mysql, host.c_str(), user.c_str(), passwd.c_str(), database.c_str(), 0, NULL, 0 ) ) { cout << "connect error, line: " << __LINE__ << endl; exit(-1); } } void createTB(); void add(); void del(); void update(); void print(); }; void MysqlDB::createTB() { string id, name, sex, birthday, CTtable; do { cout << "请输入创建表信息:\n"; cin >> CTtable; string sql = "create table "+ CTtable +"(id int, name varchar(10), sex varchar(20), birthday varchar(20));"; cout << sql << endl; mysql_query( &mysql, sql.c_str() ); cout << "是否继续(y/n): "; cin >> id; } while( id == "y" ); } void MysqlDB::add() { string id, name, sex, birthday,CTtable; cout << "请输入写入信息:\n"; cin >> id >> name >> sex >> birthday; string sql = "insert into stu(id,name,sex,birthday) values('" + id + "', '" + name + "', '" + sex + "', '" + birthday + "');"; cout << sql << endl; mysql_query( &mysql, sql.c_str() ); } void MysqlDB::del() { string id; do { cout << "请输入删除信息的ID:\n"; cin >> id; string sql = "delete from stu where id='" + id +"';"; cout << sql << endl; mysql_query( &mysql, sql.c_str() ); cout << "是否继续(y/n): "; cin >> id; } while( id == "y" ); } void MysqlDB::update() { string id, filed,value; do { cout << "请输入修改信息ID,字段,值:\n"; cin >> id >> filed >> value; string sql = "update stu set " + filed +"='" + value + "' where ID='" + id + "';"; cout << sql << endl; mysql_query( &mysql, sql.c_str() ); cout << "是否继续(y/n): "; cin >> id; } while( id == "y" ); } void MysqlDB::print() { string sql = "select * from stu;"; //成功返回0 mysql_query( &mysql, sql.c_str() ); //获取查询查询结果;成功返回result的指针,失败返回NULL result = mysql_store_result( &mysql ); if( !result ) { cout << "result error, line : " << __LINE__ << endl; return ; } int num; num = mysql_num_fields( result ); //返回字段个数 for( int i = 0; i < num; i++ ) { field = mysql_fetch_field_direct( result, i ); //返回字段类型 cout << field->name << "\t\t"; //输出字段名 } cout << endl; while( row = mysql_fetch_row( result ), row != NULL ) { for( int i = 0; i < num; i++ ) { cout << row[i] << "\t\t"; } cout << endl; } } int main() { MysqlDB db; // 将 MysqlDB 继承给 db db.connect( "127.0.0.1", "enchantment", "eisc.cn", "enchantment" ); db.print(); db.createTB(); db.print(); db.add(); db.print(); return 0; }
 2   0  274天前
admin
257
#include <stdio.h> #include <mysql/mysql.h> // 定义数据库连接信息 #define DB_HOST "localhost" #define DB_USER "root" #define DB_PASS "password" #define DB_NAME "testdb" int main() { MYSQL *conn; // MySQL连接 MYSQL_RES *res; // MySQL查询结果 MYSQL_ROW row; // MySQL行数据 conn = mysql_init(NULL); // 连接到数据库 if (!mysql_real_connect(conn, DB_HOST, DB_USER, DB_PASS, DB_NAME, 0, NULL, 0)) { fprintf(stderr, "Failed to connect to database: Error: %s\n", mysql_error(conn)); return 1; } // 查询数据 if (mysql_query(conn, "SELECT * FROM users")) { fprintf(stderr, "Failed to query database: Error: %s\n", mysql_error(conn)); return 1; } res = mysql_use_result(conn); // 输出查询结果 printf("ID\tName\n"); while ((row = mysql_fetch_row(res)) != NULL) { printf("%s\t%s\n", row[0], row[1]); } // 插入数据 if (mysql_query(conn, "INSERT INTO users (id, name) VALUES (1, 'John')")) { fprintf(stderr, "Failed to insert data: Error: %s\n", mysql_error(conn)); return 1; } // 更新数据 if (mysql_query(conn, "UPDATE users SET name='Tom' WHERE id=1")) { fprintf(stderr, "Failed to update data: Error: %s\n", mysql_error(conn)); return 1; } // 删除数据 if (mysql_query(conn, "DELETE FROM users WHERE id=1")) { fprintf(stderr, "Failed to delete data: Error: %s\n", mysql_error(conn)); return 1; } // 释放资源 mysql_free_result(res); mysql_close(conn); return 0; }
 2   0  119天前
admin
639
#include <iostream> #include <cstring> #include <string> #include <stdlib.h> // system 命令使用头文件 #include <fstream> // 读写文件 /*------ mkdir 命令 ------*/ #include <sys/stat.h> #include <sys/types.h> #include <cstddef> using namespace std; //int cishu=1200; //int shijian=300; char DirServer[30]="/datadisk/eisc/server/"; char AnfangDir[99]="anfang"; char logname[20]="eisc_anfang_log.txt"; // 不给长度,系统默认会定义长度,会导致错误,因此需要给长度 char MkdirSh[99]="sudo mkdir -p "; char ChmodSh[99]="sudo chmod 777 -R "; int log_run() { strcat( MkdirSh, DirServer); strcat( ChmodSh, DirServer); // 注意:前面定义了变量,需要再函数里面进行赋值追加字符串,否则错误 system(MkdirSh); system(ChmodSh); cout << "\n mkdirsh is : " << MkdirSh ; cout << "\n chmodsh is : " << ChmodSh; // system("tcpdump -nn > /datadisk/eisc/server/anfang/sh/log/log.txt &"); return 0; // 终止函数,并且反馈该函数的值为0 } void mkdir_path(char *p_cMkdir) { int isCreate = mkdir(p_cMkdir,S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO); if( !isCreate ) cout << "\n [ok] create AnfangDir:" << p_cMkdir ; else cout << "\n [fall] create AnfangDir failed! error code: " << p_cMkdir << "\n \n" ; } int W_file() { char shuoming[30]="this_is_eisc_anfang_tcpdump"; ofstream setfile; setfile.open(logname); setfile << shuoming; setfile.close(); // 定义 setfile 变量为 ofsteram 输入文件流,它的值为打开文件。 将 字符串变量的值写入文件流变量; 关闭流 } int R_file ( char *lognamea, int status) { char data[999]; ifstream catfile; // ifstream 以读模式打开文件, ofstream 是写模式。 将类型赋值给变量 infile catfile.open(lognamea); // 变量打开文件 cout << "\n Reading_from_the_file: " << lognamea ; catfile >> data; // 将文件流,输入到 变量 data cout << "\n data 变量 获得文件内容: " << data << "\n \n \n 获取到 status 的值为: " << status << "\n \n"; catfile.close(); // 关闭打开的文件 return status; // 终止函数,并且反回该函数的值为0 } int panduan_xuexi(){ int status=0; if( !R_file(logname,status)) { cout << "if 默认成立条件是 非0 非空, 感叹号 ! 是非运算 条件取反,相当于 结果为 是 0 是空 条件成立"; cout << "\n [ok] 函数 R_file 返回的值为0 " ; } else { cout << "\n [fall] 函数 R_file 返回的值不为0 "; } } int main() { log_run(); strcat(DirServer, AnfangDir ); strcpy(AnfangDir,DirServer); cout << "\n AnfangDir 的值为:" << AnfangDir; // memcpy( path, DirServer,99); cout << "\n 我是main 函数 AnfangDir 接收到值:" << AnfangDir; mkdir_path(AnfangDir); W_file(); panduan_xuexi(); }
 2   0  305天前
admin
489
#include <iostream> #include <vector> #include <string> #include <stdio.h> #include <stdlib.h> #include <cgicc/CgiDefs.h> #include <cgicc/Cgicc.h> #include <cgicc/HTTPHTMLHeader.h> #include <cgicc/HTMLClasses.h> using namespace std; using namespace cgicc; int main () { Cgicc formData; cout << "Content-type:text/html;charset=utf-8\n\n"; // 告诉浏览器字符编码 cout << "<html>\n"; cout << "<head>\n"; cout << "<title> C++ web 编程</title>\n"; cout << "</head>\n"; cout << "<body>\n"; int space, rows; cout <<"打印三角形: <br/>"; // cin >> rows; rows=7; for(int i = 1, k = 0; i <= rows; ++i, k = 0) { for(space = 1; space <= rows-i; ++space) { cout <<"&nbsp"; } while(k != 2*i-1) { cout << "*"; ++k; } cout << "<br/>"; cout << endl; } return 0; }
 0   0  345天前
快速发帖 高级模式
guest
登录之后更精彩~
我的小伙伴
Powered by HadSky 7.12.10
© 2015-2023 PuYueTian
您的IP:3.233.221.90,2023-12-01 15:08:45,Processed in 0.07523 second(s).
Powered by HadSky
小绿叶技术博客