Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/139.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
C++ 字符串内存被覆盖了吗?_C++_Stdstring - Fatal编程技术网

C++ 字符串内存被覆盖了吗?

C++ 字符串内存被覆盖了吗?,c++,stdstring,C++,Stdstring,使用此代码: std::string create_bc( std::string current_bk, std::string local_isin, std::string local_fininfo, std::string local_ccy, std::string local_ri

使用此代码:

std::string create_bc( std::string   current_bk,
                       std::string   local_isin,
                       std::string   local_fininfo,
                       std::string   local_ccy,
                       std::string   local_ric,
                       QSqlDatabase* db)
{
    std::string req;
    req.reserve(1024);

    req = "dbo.create_bsk_constituent @bk_cod=";
    std::cout << req << std::endl;
    req += current_bk;
    std::cout << req << std::endl;
    req += " , @ISIN= ";
    std::cout << req << std::endl;
    req += local_isin;
    std::cout << req << std::endl;
    req += " , @FININFO= ";
    std::cout << req << std::endl;
    req += local_fininfo;
    std::cout << req << std::endl;
    req += " , @dev_cod= ";
    std::cout << req << std::endl;
    req += local_ccy;
    std::cout << req << std::endl;
当“+=”将dev_cod作为右操作数时,似乎有一些内存被覆盖。由于某种原因,+=的右操作数写在字符串的开头

我还想知道cout,所以我尝试在所有地方添加一些std::flush。但这并没有让事情变得更好

编辑

只是没人问而已。只有一个线程…:)

@Angew谢谢==>应用了dos2unix,问题解决了。 关闭

local_fininfo是windows csv文件的第行。然后,在我的十六进制编辑器中,本地fininfo以0D0A结束


因此,确实有一个回车,我无法通过单独打印本地fininfo看到。

local\u fininfo
中有一个回车,在
local\u fininfo
中有一个回车,在其中一个字符串中似乎有一个
回车
字符,在输出过程中对其进行解释。可能某个Windows样式的文件被解析为某个Unix样式的文件。

在其中一个字符串中似乎有一个
回车
字符,它在输出过程中被解释。可能某个Windows样式的文件正在被解析为Unix样式的文件。

是否有一个字符串包含<代码>回车符字符?您应该提供一个完整的独立测试用例,人们可以自己获取、编译和查看。还可以调试字符串的长度。它还将取消隐藏可能的回车。我确信没有字符串内存被覆盖,但控制台的输出有问题。如果这些字符串来自输入,可能是Windows样式的文件被解析为Unix样式的文件。其中一个字符串是否有可能包含
回车
字符?您应该提供一个完整的独立测试用例,人们可以自己获取、编译和查看。还可以调试字符串的长度。它还将取消隐藏可能的回车。我确信没有字符串内存被覆盖,但控制台的输出有问题。如果这些字符串来自输入,则可能是Windows样式的文件被解析为Unix样式的文件。不,我单独打印了它。不,有回程车。我无法在单独的可执行文件中重现该问题。。。我一直在尝试。不,我是分开打印的。不,有回程车。我无法在单独的可执行文件中重现该问题。。。我一直在努力。
dbo.create_bsk_constituent @bk_cod=
dbo.create_bsk_constituent @bk_cod=bk11
dbo.create_bsk_constituent @bk_cod=bk11 , @ISIN=
dbo.create_bsk_constituent @bk_cod=bk11 , @ISIN= EU0009658145
dbo.create_bsk_constituent @bk_cod=bk11 , @ISIN= EU0009658145 , @FININFO=
dbo.create_bsk_constituent @bk_cod=bk11 , @ISIN= EU0009658145 , @FININFO= 22
 , @dev_cod= k_constituent @bk_cod=bk11 , @ISIN= EU0009658145 , @FININFO= 22
 , @dev_cod= EURonstituent @bk_cod=bk11 , @ISIN= EU0009658145 , @FININFO= 22