Почему c_str () не читает добавленную строку? - PullRequest
0 голосов
/ 06 августа 2020

В настоящее время я работаю над проектом, в котором я беру файл .txt изображения ASCII и отправляю его в базу данных mySQL. У меня программа считывает каждую строку файла .txt и добавляет ее к командной строке mySQL. Все хорошо, пока я не конвертирую строку в c_string для чтения mySQL. После 1-го ряда следующие строки не заканчиваются присоединенной добавленной строкой, и я не совсем уверен, почему это так ... Накануне он работал, но результаты были несовместимыми.

Что я использую: Visual Studio 2017 Enterprise C ++

int main() {
    int i = 0;
    int lineNum;
    ifstream test;
    string stats;
    string queryHolder;
    string asciiHolder[68];
    string query;
    
    //Convert image to Ascii func
    asciiArt();

    conn = mysql_init(NULL);
    if (conn == NULL)
    {
        std::cout << "Error!!\n";
        exit(1);
    }
    connection = mysql_real_connect(conn, "localhost", "root", "password", "database1", 3306, NULL, 0);
    if (connection == NULL) {
        stats = "Connection MYSQL None Exist";
    }
    else
    {
        stats = "MYSQL Connected";
    }

    test.open("C:/Users/user/source/repos/asciiart/asciiart/image.txt");
    if (!test)
    {
        cout << "Error";
        return 0;
    }

    while (getline(test, queryHolder))
    {
        asciiHolder[i] = queryHolder;
        i++;
    }
    lineNum = i;
    
    for (i = 0; i < lineNum; i++)
    {
        cout << asciiHolder[i] << endl;
    }
    test.close();
    
    for (i = 0; i < lineNum; i++)
    {
        query = "insert into table(image) values('";
        query.append(asciiHolder[i]);
        query = query+("')");
        
        //Query comes out correctly ending each row with ')
        //cout << query << endl;

        //const char* finalQuery = query.c_str();
        //cout << finalQuery << endl;

        //c_str only has the first row end with ')
        cout << query.c_str() << endl;

        mysql_query(conn, query.c_str());
    }

    //Display mySQL table
    mysql_query(conn, "select * from image");
    result = mysql_use_result(conn);
    while ((row = mysql_fetch_row(result)) != NULL)
    {
        cout << row[0] << endl;
    }
    

    mysql_close(conn);
    return EXIT_SUCCESS;
}

Пример вывода запроса: заканчивается на ') во всех строках

insert into dragon(dragon) values('                                                                                                     ..::||||||||||::::::::.......             ')
insert into dragon(dragon) values('                                                                                                ..::|||||||||||||++=++============++|:..      ')
insert into dragon(dragon) values('                                                                                          ..::|:::::::::::::::::|||||++++===$$$$=+:  .  ...   ')
insert into dragon(dragon) values('                                                                                   ..:::::::::::::::::::::::::::||||+++++==$$===|             ')
insert into dragon(dragon) values('                                                                                 .::::::::::::::::::|:::::|:::::::||+++++$====+:.             ')
insert into dragon(dragon) values('                                                                               .::::::::::::::::::::||::::::::::::::|+++======:               ')
insert into dragon(dragon) values('           .:|+++|:.                                                         .:::::::::::::::::::::::::|||||||||||||+++==$$$+.:               ')
insert into dragon(dragon) values('         .::||+++.                                               ::.       .:|:::::::::::::::::|:::::||||||||||+|+++=+=======+.               ')
insert into dragon(dragon) values('        .::::||||:.....:||||||||:::..                           :::      .:||:::::::::|||||||||||||||||||++|+||++++++=======$+:               ')
insert into dragon(dragon) values('       .:::::::|:::|||||||||||+++=====|:                       :|:     :|||::::::|||||||||||||||||||:::::||||||||+===========+:               ')
insert into dragon(dragon) values('      :::::::::|||||||:::|:||+++=====|.....                    .|:. .:||:::||||||||::::::::|||::::::::::::||||++++===$$$$$$$==+:              ')
insert into dragon(dragon) values('     ::::::||||::::::::::::|||||+====|                          |||:|||||||||:::::::::::::::::::::::::||++++++===$$$$$$$++|:...::::.          ')
insert into dragon(dragon) values('     .:::::|+:::::::::||||||||||+==$=:                          :||+++|||::::::::::::::::::::::::::::|::|:||+++==$$$===|.          ..         ')
insert into dragon(dragon) values('      |:.::+|:|||||::::||||||||||++==+:.                        .||+++||::::||||||||||||||::::::::::|+|||++++===$$$=+:               .        ')
insert into dragon(dragon) values('      ::.:||:|||||||||||::|||||+++++===|...                      ::|::|||:::::::::::::::::||||:||||||||||+====$$$$++:                         ')
insert into dragon(dragon) values('   .  :::|+|||||||||:::::::::|::|||+++===|......         ........::||:|||||:::::::::::::::::::|++|++++++++++==$=$=:                           ')
insert into dragon(dragon) values('   :. |:|+|+++||||:::::::::::||||||||++====+:......     .........:||+|:::::|||::::::::::::::||||+==++=======$$$|=+                            ')
insert into dragon(dragon) values('   ..:|||+++++|||||::::::::::::||||+++====$=+|...... . ..........:||||::::::::|||:::::::::::|||||+++==$$====$$$$$=:                           ')
insert into dragon(dragon) values('        :|++++||||||||||||||||||||||||++===|:::..................:|||+:::::::::::|||::::::::||||||++++=$$$$$$$$$$$+                           ')
insert into dragon(dragon) values('          .:|++++||:::::|||||||++|++++++=$=+.....................:|||+|::::::::.::::|||::::|||||||++===$$$$$$$$$===:                          ')
insert into dragon(dragon) values('             .:||+++|::::::::::|||+=+++====|.....................::||++:::::::::::::::||||||||++=+=====$$+ |+|:||:|+.                         ')
insert into dragon(dragon) values('               .:||++++|:::::::::::|++=====|.....................::|+++|::::::::::::::::||+||+++=====$$$$=.         :|                        ')
insert into dragon(dragon) values('                  ::|+=+++|::::::::::|++===|.....................:::+|++:.::::::::::::::|||+++++=====$$$+|:           :                       ')
insert into dragon(dragon) values('                    ::||++++|:::::::::|||+==+....................:::|+|||:.:::::::::::|:|+++++====$=$$+=               .                      ')
insert into dragon(dragon) values('                    ..::::||++||:::::::::|+===:..................:::|+||+:..::::::::::|||||+====$$$$$$=+                                      ')
insert into dragon(dragon) values('                    ....:::.:|||||::::|::::|+==+.................:::|+||||..:::::::::::||||+==$==$$$=$=.                                      ')
insert into dragon(dragon) values('                   ....  .::.:||||||++=||||:+====:..............:|:::+||||:..::::::::::||+++==$$==$==:.                                       ')
insert into dragon(dragon) values('                 .....    .:::||||:||||||+:::+===+..............|::::|||||:....:::|||||||+===$=====$$=                                        ')
insert into dragon(dragon) values('                 .....  ..::|||||||||||:|||::|++|..............:::::::+|||:..::::::|++++++=$=$$==$$=$+                                        ')
insert into dragon(dragon) values('                .....::::||||||||||||||+++=|:+=|..............:::::..:++|||::::::::|++++===$$$$$$====|                                        ')
insert into dragon(dragon) values('                 ....:|||:::|||:::|:::||+++|:+=+.............:::::::|++|||::::::::|+++=====$==+|+||+:+:                                       ')
insert into dragon(dragon) values('                 .::..:..    :||||::::||:+++|+=+............::::::|++|||::.::::::||+===$$+|||.        :.                                      ')
insert into dragon(dragon) values('                 ..::......:.:|++|:::||||+=|:+=:. ..... . .::::||++||::...:::::||++=+=$==|::::.        :                                      ')
insert into dragon(dragon) values('                  .:::...:::|||::|||||+=++=+:|=|.........::::|++++|::::.::::||||++======|::::::::...   .                                      ')
insert into dragon(dragon) values('                   ......::|+:..:::|||+++=|.:|==.......::||++++|||:::::::::||++|+=+====+|||:::::::::::..                                      ')
insert into dragon(dragon) values('                     ....|+|:..:::|||+++=|+:||==|....:|+++++++|:.:::::::||++===++===+:||||||:::::::::::::                                     ')
insert into dragon(dragon) values('                         .:...:::::+=++==:::|+=$|.:|++|||++++|.:::::||||||+=========::||||||:::::::::::..:                                    ')
insert into dragon(dragon) values('                          . :::::||+++=||:::|+++=+++||+++++|:.::::|||||++++=====|+:::::::::::::::::::::::.                                    ')
insert into dragon(dragon) values('                           .:::::|++===||:|++++++++++++++|:.:::::|||||++======+=:..:::::::.....:::::::::..                                    ')
insert into dragon(dragon) values('                         ..:::|:::|++==+++++|+|+===++++|::::::::|+++++=+|+===|.:....::::.......::::::::.                                      ')
insert into dragon(dragon) values('                         .::::::::+++++==+|||||++===|::::::::::|+===========:........:::.::::::::::::...                                      ')
insert into dragon(dragon) values('                         ..:::::::||+++++||||++||===+::::::::||++======|+|+:..........:::::::::::::::..                                       ')
insert into dragon(dragon) values('               ..        .:::::|:::|||::::::+=+||+=+=:::::::|+++==++==+ .................:::::::::::.:.                                       ')
insert into dragon(dragon) values('            ::|:||:.     .:||::::::|:::::::|+$=|||+==|::::|++===$===|:.....................::::::::::.                                        ')
insert into dragon(dragon) values('            :::::||||    :||||:||+|+|:..::||+=++||+==+|||||+====+. ..  ....................::::::::::::..                                     ')
insert into dragon(dragon) values('               .::|:|:   :||:::||++|+:::||++==++||+==+|||||====.    ...... ................::::::::::::::....                                 ')
insert into dragon(dragon) values('            .:||::||||:  |+|:|||++||+|:||||||=+||||++=++|+++==|          .  ................::::::..::::.....                                 ')
insert into dragon(dragon) values('             .   ..|||||:::||++++++=|||+|::::|++|||||++=++++==.                 . ..........:::::::::........                                 ')
insert into dragon(dragon) values('                   .|::::|+||||||||++|||||||||:||::||||++++|+=.                    ............:::............                                ')
insert into dragon(dragon) values('                    .|::::||||  ..::||++|:::||:::..:|:::|++++=+|.                   ...........::.:.......                                    ')
insert into dragon(dragon) values('                      .:|||||.        .:||:||||||::.:::::|||+==+++:                 ..........::::.....                                       ')
insert into dragon(dragon) values('                         .:|:            .||||||:|:::::||:|::|++||+|:.                  .............                                         ')
insert into dragon(dragon) values('                                               .|+|||::::||:::|||+|||::.                  ........                                            ')
insert into dragon(dragon) values('                                               |+|++||||||||:|::|::|:|||.                                                                     ')
insert into dragon(dragon) values('                                               :|||+=+++|++||:::|:::||||||.                                                                   ')
insert into dragon(dragon) values('                                               :||||+|+|++||:::|::|||||++||:                                                                  ')
insert into dragon(dragon) values('                                                ||||++|++|:|||::|:||||:||+|||.                                                                ')
insert into dragon(dragon) values('                                                .|||:.  ||:.|+|:||+||::::||+|||                        ::.|::.::                              ')
insert into dragon(dragon) values('                                                  .     |||:.||||+++||:::::||||:                   .||+|||:|::::::.                           ')
insert into dragon(dragon) values('                                                        ||||:..:: .++|:::::::+||:                ::||||||||:..:::||                           ')
insert into dragon(dragon) values('                                                        .++|||.    |||:. :::::||||.             |+||||||:.      .:|                           ')
insert into dragon(dragon) values('                                                         :|||:.    .+|||: .:::::||:.          :|||++||:.         :.                           ')
insert into dragon(dragon) values('                                                         .:..:.     .||:.:. ::::||||:        .||+||:|.                                        ')
insert into dragon(dragon) values('                                                                     ||:.    .|::|+|||..   :|||+|+::                                          ')
insert into dragon(dragon) values('                                                                       ..      :|:|||+++++++++|:::.                                           ')
insert into dragon(dragon) values('                                                                                .|||:||||++::||:.                                             ')
insert into dragon(dragon) values('                                                                                  .::|:|:::::.                                                ')

Пример вывода query.c_str (): только заканчивается на ') после первой строки

insert into dragon(dragon) values('                                                                                                     ..::||||||||||::::::::.......             ')
insert into dragon(dragon) values('                                                                                                ..::|||||||||||||++=++============++|:..
insert into dragon(dragon) values('                                                                                          ..::|:::::::::::::::::|||||++++===$$$$=+:  .  ...
insert into dragon(dragon) values('                                                                                   ..:::::::::::::::::::::::::::||||+++++==$$===|
insert into dragon(dragon) values('                                                                                 .::::::::::::::::::|:::::|:::::::||+++++$====+:.
insert into dragon(dragon) values('                                                                               .::::::::::::::::::::||::::::::::::::|+++======:
insert into dragon(dragon) values('           .:|+++|:.                                                         .:::::::::::::::::::::::::|||||||||||||+++==$$$+.:
insert into dragon(dragon) values('         .::||+++.                                               ::.       .:|:::::::::::::::::|:::::||||||||||+|+++=+=======+.
insert into dragon(dragon) values('        .::::||||:.....:||||||||:::..                           :::      .:||:::::::::|||||||||||||||||||++|+||++++++=======$+:
insert into dragon(dragon) values('       .:::::::|:::|||||||||||+++=====|:                       :|:     :|||::::::|||||||||||||||||||:::::||||||||+===========+:
insert into dragon(dragon) values('      :::::::::|||||||:::|:||+++=====|.....                    .|:. .:||:::||||||||::::::::|||::::::::::::||||++++===$$$$$$$==+:

Пример вывода из mysql: отображается только первая строка

mysql> select * from dragon;
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
| dragon                                                                                                                                          | id |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
|                                                                                                      ..::||||||||||::::::::.......              |  1 |
+-------------------------------------------------------------------------------------------------------------------------------------------------+----+
1 row in set (0.00 sec)

Редактирует После того, как мой код проходит через изображение в функцию преобразования ascii, каким-то образом вновь созданный txt-файл имеет нулевые терминаторы в конце каждой строки .. Просто зайдя в файл и добавив пробел в любую строку, а затем сохранив его, моя программа могла функционально работать. Я не понимаю, почему это происходит.

...