通過數據庫接口庫(如 mysql connector/c++ 或 odbc),可將 c++ 中的 cin 與數據庫結合。具體步驟包括:安裝數據庫接口庫;建立數據庫連接;創建查詢語句;將 cin 輸入綁定到查詢參數;執行查詢;獲取查詢結果。
C++ 中 cin 和數據庫的結合
在 C++ 中使用 cin 從命令行讀取用戶輸入,而數據庫用于存儲和管理數據。要將 cin 與數據庫結合起來,需要使用數據庫接口庫(例如 MySQL Connector/C++ 或 ODBC)。
使用 MySQL Connector/C++
-
安裝 MySQL Connector/C++ 庫。
在 C++ 代碼中包含必要的頭文件。
<code class="cpp">#include <iostream> #include mysqlx/xdevapi.h></iostream></code>
登錄后復制
建立數據庫連接。
<code class="cpp">mysqlx::Session session("host", "port", "user", "password", "database");</code>
登錄后復制
創建查詢語句。
<code class="cpp">std::string query = "SELECT * FROM table_name WHERE column_name = ?";</code>
登錄后復制
將 cin 輸入綁定到查詢參數。
<code class="cpp">mysqlx::PreparedStatement stmt = session.prepare(query); std::string input; std::cin >> input; stmt.bind("column_name", input);</code>
登錄后復制
執行查詢。
<code class="cpp">mysqlx::Result res = stmt.execute();</code>
登錄后復制
獲取查詢結果。
<code class="cpp">for (auto row : res.fetchAll()) { std::cout () </code>
登錄后復制
使用 ODBC
包含必要的 ODBC 頭文件。
<code class="cpp">#include <iostream> #include <sql.h> #include <sqlext.h></sqlext.h></sql.h></iostream></code>
登錄后復制
建立數據庫連接。
<code class="cpp">SQLHENV henv; SQLHDBC hdbc; SQLAllocEnv(&henv); SQLAllocConnect(henv, &hdbc); SQLDriverConnect(hdbc, nullptr, "DSN", SQL_NTS, nullptr, 0, nullptr, SQL_DRIVER_NOPROMPT);</code>
登錄后復制
創建 SQL 語句句柄。
<code class="cpp">SQLHSTMT hstmt; SQLAllocStmt(hdbc, &hstmt);</code>
登錄后復制
設置 SQL 語句。
<code class="cpp">std::string sql = "SELECT * FROM table_name WHERE column_name = ?"; SQLBindParameter(hstmt, 1, SQL_PARAM_INPUT, SQL_C_CHAR, SQL_CHAR, 0, 0, nullptr, 0, nullptr);</code>
登錄后復制
將 cin 輸入綁定到 SQL 語句。
<code class="cpp">std::string input; std::cin >> input; SQLSetParam(hstmt, 1, SQL_C_CHAR, input.c_str(), input.length(), nullptr);</code>
登錄后復制
執行 SQL 語句。
<code class="cpp">SQLExecute(hstmt);</code>
登錄后復制
獲取查詢結果。
<code class="cpp">SQLBindCol(hstmt, 1, SQL_C_CHAR, nullptr, 0, nullptr); while (SQLFetch(hstmt) == SQL_SUCCESS) { char buffer[1024]; SQLGetData(hstmt, 1, SQL_C_CHAR, buffer, sizeof(buffer), nullptr); std::cout </code>
登錄后復制