位于“ v =”之后的值不会在以下代码中显示。 让我知道如何解决。
while(getline(ifs,line))
{
vector<string> strvec=split(line,',');
for(int l=0;l<strvec.size();l++)
{
cout<<"l="<<l<<"value="<<stoi(strvec.at(l))<<endl;
unsigned char v;
v=stoi(strvec.at(l));
File.write((char *)&v, sizeof(char));
cout<<"v="<<v<<endl;
}
}
答案 0 :(得分:2)
“ v =”不会显示在代码中,因为v是无符号字符,并且无符号字符的cout行为将显示其ASCII值,并且当它不可打印时,您将得到这些荒谬的问题。因此,您可以将v声明为unsigned int或执行static_cast,如以下示例所示:
#include <iostream>
#include <vector>
int main()
{
std::vector<std::string> strvec{std::string("10"),std::string("20")};
for(int l=0;l<strvec.size();l++)
{
std::cout<<"l="<<l<<"value="<<stoi(strvec.at(l))<<std::endl;
unsigned char v;
v=stoi(strvec.at(l));
std::cout<<"v="<<static_cast<unsigned>(v)<<std::endl;
}
return 0;
}