Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ers/Mike/Library/Developer/Xcode/DerivedData/Cointos1/Build/Products/Debug/random.sqlite”;错误消息:预期的标识符或“(”程序现在正确地将随机数据插入数据库。我已经运行_C_Database_Sqlite - Fatal编程技术网

ers/Mike/Library/Developer/Xcode/DerivedData/Cointos1/Build/Products/Debug/random.sqlite”;错误消息:预期的标识符或“(”程序现在正确地将随机数据插入数据库。我已经运行

ers/Mike/Library/Developer/Xcode/DerivedData/Cointos1/Build/Products/Debug/random.sqlite”;错误消息:预期的标识符或“(”程序现在正确地将随机数据插入数据库。我已经运行,c,database,sqlite,C,Database,Sqlite,ers/Mike/Library/Developer/Xcode/DerivedData/Cointos1/Build/Products/Debug/random.sqlite”;错误消息:预期的标识符或“(”程序现在正确地将随机数据插入数据库。我已经运行了几个测试,据我所知,它似乎是正确的。这是个好消息。我不知道我是否用了最好的方法(也许有更好的方法吗?),但我对此并不太在意。如果您感兴趣,我将创建一个链接来检查代码。感谢您在这方面的帮助。 /* This file was mechanica


ers/Mike/Library/Developer/Xcode/DerivedData/Cointos1/Build/Products/Debug/random.sqlite”;错误消息:预期的标识符或“(”程序现在正确地将随机数据插入数据库。我已经运行了几个测试,据我所知,它似乎是正确的。这是个好消息。我不知道我是否用了最好的方法(也许有更好的方法吗?),但我对此并不太在意。如果您感兴趣,我将创建一个链接来检查代码。感谢您在这方面的帮助。
/* This file was mechanically generated from tests/check-pcg32.c */

#include <stdio.h>
#include <stddef.h>
#include <stdlib.h>
#include <stdint.h>
#include <stdbool.h>
#include <time.h>
#include <string.h>

#include "pcg_basic.h"

int main(int argc, char** argv)
{
    // Read command-line options

    int rounds = 1000;
    bool nondeterministic_seed = false;
    int round, i;

    ++argv;
    --argc;
    if (argc > 0 && strcmp(argv[0], "-r") == 0) {
        nondeterministic_seed = true;
        ++argv;
        --argc;
    }
    if (argc > 0) {
        rounds = atoi(argv[0]);
    }

    // In this version of the code, we'll use a local rng, rather than the
    // global one.

    pcg32_random_t rng;

    // You should *always* seed the RNG.  The usual time to do it is the
    // point in time when you create RNG (typically at the beginning of the
    // program).
    //
    // pcg32_srandom_r takes two 64-bit constants (the initial state, and the
    // rng sequence selector; rngs with different sequence selectors will
    // *never* have random sequences that coincide, at all) - the code below
    // shows three possible ways to do so.

    if (nondeterministic_seed) {
        // Seed with external entropy -- the time and some program addresses
        // (which will actually be somewhat random on most modern systems).
        // A better solution, entropy_getbytes, using /dev/random, is provided
        // in the full library.

        pcg32_srandom_r(&rng, time(NULL) ^ (intptr_t)&printf, 
                  (intptr_t)&rounds);
    } else {
        // Seed with a fixed constant

        pcg32_srandom_r(&rng, 42u, 54u);
    }

    printf("pcg32_random_r:\n"
           "      -  result:      32-bit unsigned int (uint32_t)\n"
           "      -  period:      2^64   (* 2^63 streams)\n"
           "      -  state type:  pcg32_random_t (%zu bytes)\n"
           "      -  output func: XSH-RR\n"
           "\n",
           sizeof(pcg32_random_t));

    for (round = 1; round <= rounds; ++round) {
        printf("Round %d:\n", round);
        /* Make some 32-bit numbers */
        printf("  32bit:");
        for (i = 0; i < 6; ++i)
            printf(" 0x%08x", pcg32_random_r(&rng));
        printf("\n");

        /* Toss some coins */
        printf("  Coins: ");
        for (i = 0; i < 100; ++i)
            printf("%c", pcg32_boundedrand_r(&rng, 2) ? 'H' : 'T');
        printf("\n");

        printf("\n");
    }
    return 0;
}
sqlite3 random.sqlite
CREATE TABLE experiment (round INT, toss INT, result CHAR(1));
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "sqlite3.h"

void exit_with_error(sqlite3 *db, const char * msg) {
    fprintf(stderr, "%s: %s\n", msg, sqlite3_errmsg(db));
    sqlite3_close(db);
    exit(1);
}

char *pathToDB = "<a path to random.sqlite>";

sqlite3 *open_db(void);
sqlite3_stmt *prepeare_stmt(sqlite3 *db);
void close_db(sqlite3 *db, sqlite3_stmt *stmt);


int main() {
    sqlite3 *db = open_db();
    sqlite3_stmt *stmt = prepeare_stmt(db);

    if(sqlite3_exec(db, "BEGIN TRANSACTION", NULL, NULL, NULL) != SQLITE_OK) {
        exit_with_error(db, "begin transaction failed");
    }

    char *result = "H";
    for(int round = 0; round < 100; round++) {
        for(int toss = 0; toss < 100; toss++) {

            //for a short test simply output alternately "H" and "T"
            result = strcmp(result, "H") == 0 ? "T" : "H";

            //bind values to parameters
            sqlite3_bind_int(stmt, 1, round);
            sqlite3_bind_int(stmt, 2, toss);
            sqlite3_bind_text(stmt, 3, result, -1, SQLITE_STATIC);

            //run the SQL
            if (sqlite3_step(stmt) != SQLITE_DONE) {
                exit_with_error(db, "insert failed");
            }

            //reset prepared statement to be able to bind new values in next loop pass
            if (sqlite3_reset(stmt) != SQLITE_OK) {
                exit_with_error(db, "reset failed");
            }

        }
    }

    if(sqlite3_exec(db, "END TRANSACTION", NULL, NULL, NULL) != SQLITE_OK) {
        exit_with_error(db, "end transaction failed");
    }

    //finalize the stmt and close db to avoid resource leaks
    sqlite3_finalize(stmt);
    sqlite3_close(db);

    return 0;
}

sqlite3 *open_db(void) {
    sqlite3 *db;

    if (sqlite3_open(pathToDB, &db) != SQLITE_OK) {
        exit_with_error(db, "can't open db: ");
    }
    return db;
}

sqlite3_stmt *prepeare_stmt(sqlite3 *db) {
    sqlite3_stmt *stmt;

    //create a prepared statement
    int rc = sqlite3_prepare_v2(db, "INSERT INTO experiment VALUES (?1,?2,?3)", -1, &stmt, 0);
    if (rc != SQLITE_OK) {
        exit_with_error(db, "failure preparing insert");
    }

    return stmt;
}
sqlite3 random.sqlite
SELECT * FROM experiment;
0|0|T
0|1|H
0|2|T
...
99|97|H
99|98|T
99|99|H
SELECT * from experiment WHERE round=0 and toss=2;
0|2|T