【发布时间】:2013-11-23 02:45:55
【问题描述】:
我正在使用 C++ 和嵌入式 SQL 将文本文件中的数据读入 SQL 数据库。 这是文本文件“employee.txt”:
1000 Smith Joe 35000.00
其中 empId=100,empName=“Smith Joe”,empSal = 35000.00。
到目前为止,我尝试过的语句不适用于employee.txt 文件中名字和姓氏之间的空格。它正在读取“Smith”和“Joe”之间的空格,表示 Smith 和 Joe 是两个独立的项目,而不是带有空格的字符串。这是我的代码:
inFile >> empId;
while (!inFile.eof())
{
inFile >> empName;
inFile >> empSal;
string sql;
sql = "insert into Employee values (\'"+ empID + "\', \' "+empName+ " \', \'"
+empSal+ "\')";
mysql_query(connect, sql.c_str());
inFile >> empSal;
}
如果我从文本文件中删除空格(“SmithJoe”而不是“Smith Joe”),数据库会正确填充。
我想在读入文件时忽略空白,而不删除空白,以便将整个字符串“Smith Joe”放入数据库的一个单元格中。
有没有办法在不删除空格的情况下忽略两个名称之间的空格,以便将整个字符串“Smith Joe”读入数据库的一个单元格?
谢谢
【问题讨论】:
-
mysql跟这个有什么关系?您的问题仅在于读取文本文件,而您在读取数据后如何处理它是无关紧要的,不是吗?
-
不幸的是,你从根本上搞砸了。如果您使用空格将名字和姓氏分开,您将无法判断是名字还是姓氏中有空格。您无法知道“A B C”是“A B”、“C”还是“A”、“B C”。因此,您无法同时获得“Dideric van der Waal”(姓氏包含空格的化学家)和“Ram gopal Qatlam”(我的名字包含空格的朋友)。您如何知道“Patrick Nielsen Hayden”是否有中间名、带空格的名字或带空格的姓氏? (剧透,他的姓有一个空格。)