我目前正在做一个项目,我将一个 ASCII 图像 .txt 文件发送到一个 mySQL 数据库。我让程序读取 .txt 文件的每一行并将其附加到 mySQL 命令字符串。一切都很好,直到我将字符串转换为 c_string 以供 mySQL 读取。在第一行之后,以下行没有以附加的字符串结尾,我不太清楚为什么会这样……前一天确实有效,但结果不一致。
我使用的是: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 文件在每一行的末尾都有空终止符。只需简单地进入文件并在任何行中添加一个空格然后保存它就可以让我的程序功能上工作。我很困惑为什么会这样。