【发布时间】:2016-01-12 07:33:17
【问题描述】:
我有一个函数目前什么都不做,因为我作为参数发送的 char 数组没有值。我可以在函数之前写出数据并获得预期的输出,但是如果我在函数中写出,即使这是我做的第一件事,也没有任何结果。
我先写出字符串,然后将其转换为 char 数组。我也尝试过使用普通字符串作为参数,结果相同。
std::cout << block;
block = this->removeNullCharacters(block.c_str());
第一个 cout 的输出是:“0/”
下面函数的输出什么都没有。控制台中什么也没有显示。
std::string FileSystem::removeNullCharacters(const char * input){
std::string out = "";
for(int i = 0; i < 512; ++i){
std::cout << i << ": " << input[i];
/*if(input[i] == '\0'){
return out;
}
else{
out += input[i];
}*/
}
return out;
}
【问题讨论】:
-
尝试使用 DDD 来观察输入值...反正我猜方法 block.c_str() 什么都没有返回
-
@101010 这不是我有问题的返回值。函数中的 std::cout。 input[i] 中没有任何内容。
-
@Izuel 你说得对,block.c_str() 什么都不返回,所以我更改为字符串作为输入,现在我得到了我填充和奇怪的字符串中的一些地方。如果我尝试写出整个字符串,我什么也看不到。
-
block是否包含单个空字符?