【发布时间】:2019-11-08 17:09:38
【问题描述】:
我想打印一个在实际结束前有 \0 个字符的动态 char 数组。
我正在为每个索引使用cout 打印它。
for (int i = 0; i < size; i++) {
std::cout << content[i];
}
但是当我遇到 \0 字符时,我想检测它,所以我正在使用:
if (content[i] == 0) {
std::cout "zero";
}
我试过了
if (content[i] == "\0") {
std::cout "zero";
}
但我无法进行这种比较,因为您显然无法比较 const char* 和 char。
我做错了什么?如何进行这种比较?
char 数组顺便说一句:
char * content = new char[size];
file.seekg(0);
file.read(content, size);
【问题讨论】:
-
content[i] == 0比较char和int。具体是什么给了你所说的错误? -
请在此处按要求发布minimal reproducible example! (Edit你的问题)
-
content[i] == 0是正确的,所以无论您遇到什么问题,都不是这样。您的代码还有其他一些问题,而您尝试修复错误的事情(常见的新手情况)只会让事情变得更糟。发布一个完整的程序来说明您的问题而不仅仅是 sn-pts 会有所帮助。 -
也许this question 有帮助?
标签: c++ arrays dynamic types casting