在插入SQL数据库时忽略空格,而不删除字符串中的空格 我用C++和嵌入式SQL从文本文件中读取数据到SQL数据库中。 以下是文本文件“employee.txt”:

在插入SQL数据库时忽略空格,而不删除字符串中的空格 我用C++和嵌入式SQL从文本文件中读取数据到SQL数据库中。 以下是文本文件“employee.txt”:,c++,mysql,sql,database,C++,Mysql,Sql,Database,其中empId=100,empName=“Smith Joe”和empSal=35000.00 到目前为止,我尝试过的语句无法正确处理employee.txt文件中名和姓之间的空格。读“Smith”和“Joe”之间的空格意味着Smith和Joe是两个独立的项目,而不是带有空格的字符串。这是我的密码: inFile >> empId; while (!inFile.eof()) { inFile >> empName; inFile >> em

其中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”而不是“SmithJoe”)中删除空格,数据库将正确填充

我希望在读取文件时忽略空白,而不删除空白,以便将整个字符串“Smith Joe”放入数据库的一个单元格中

有没有一种方法可以忽略两个名称之间的空格而不删除空格,这样整个字符串“Smith Joe”就可以读入数据库的一个单元格

谢谢

  • 通读整行。“1000史密斯乔35000.00
  • 找到第一个空格。在那个地方分开。“1000”,“史密斯乔35000.00
  • 在行的其余部分中找到最后一个空格。在那个地方分开。“1000”、“Smith Joe”、“35000.00

  • 您可以尝试将empName读入两个变量,如empFirstName和empLastName,然后在插入数据库时将它们合并。

    mysql与此有什么关系?你的问题只是读取一个文本文件,而你在读取数据后如何处理这些数据是不相关的,不是吗?不幸的是,你根本就完蛋了。如果使用空格将名字与姓氏分开,则无法分辨是姓氏还是姓氏中有空格。你不知道“abc”是“abc”还是“abc”。所以你不可能同时得到“Dideric van der Waal”(化学家,他的最后一个名字包含空格)和“Ram gopal Qatlam”(我的一个朋友,他的名字包含空格)。你怎么知道“Patrick Nielsen Hayden”有中间名、带空格的名字还是带空格的姓氏?(剧透者,他的姓有空格。)必须提及。如果员工的名字是“迪德里克·范德瓦尔”,这将失败。我完全同意大卫·施瓦茨的观点。输入应该有一些分隔符,没有这些分隔符,任何技术都不会永远工作。如果将来必须向输入中添加更多列,则即使拆分技术也将失败。
    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;
    
    }