当前位置:网站首页>After the subscript is used to assign a value to the string type, the cout output variable is empty.

After the subscript is used to assign a value to the string type, the cout output variable is empty.

2022-07-06 16:53:00 Flower dog fdog

When writing to create a folder today , No matter how you create it , Revise over and over again , Make sure the mistake is string Type variables .

Look at the code below

		// The code in this function , The argument to the function is string fileurl_s
        int len = fileurl_s.length();
        std::string fileurl_s_cy;
        for(int i =0;i<len;i++)
        {
    
            fileurl_s_cy[i]=fileurl_s[i];
            if(fileurl_s_cy[i]=='/' || fileurl_s_cy[i]=='\\')
            {
    
                if (0 != access(fileurl_s_cy.c_str(), 0))
                {
    
                    mkdir(fileurl_s_cy.c_str(),0);   //  return  0  Indicates that the creation was successful ,-1  It means failure 
                }
            }
        }

The function of this code is to create folders , And subfolders , According to the parameters , Skip if there is , Nothing creates

But I found that I couldn't create folders at all

I try to output fileurl_s_cy[i], It can output the characters I want normally

But when I output fileurl_s_cy There's something wrong with it ,fileurl_s_cy From beginning to end, it is empty , Length is also empty , As a result, the folder cannot be created normally

It can output normally fileurl_s_cy[i], But it cannot output normally fileurl_s_cy, I thought it was ’\0’ The problem of , It's useless to add discovery ,fileurl_s_cy The overall length is still 0

I can use std::stringfileurl_s_cy = “www/ccccc” This form normally creates folders , However, the subscript assignment method cannot be used

After Baidu , I learned it because of the statement fileurl_s_cy There was no room to open up , So it can't be used

The strange thing is the output fileurl_s_cy[i] I didn't report an error .

The solution is as follows :

The declaration is changed to std::string fileurl_s_cy(len,’\0’);

In this way, subscript assignment can be used normally , Output and overall output

Afraid to forget , Record with this .

原网站

版权声明
本文为[Flower dog fdog]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202131313332576.html