为什么这段代码在在线 C++ 编译器上没有输出?
Why does this code give no output on online C++ compilers?
我正在使用在线编译器试验 C++ 中的语句。当我尝试 运行 这个特定代码时
cout << num[i] + " " + num[i];
在线编译器没有输出。我可以将 +
符号更改为 <<
但我想知道代码在这些在线编译器上没有给出任何输出的原因。
我试过的在线编译器是onlinegdb, programiz, and jdoodle。
#include <iostream>
#include <string>
int main() {
std::string num = "123";
int i = 0;
std::cout << num[i] + " " + num[i];
return 0;
}
C++ 不像 JavaScript 或许多 higher-level 语言,因为你不能用 +
或 ,
's. As shown in Lewis' 来分隔你的数据回答,您希望打印的每个项目都必须用 insertion
分隔符 (<<
) 分隔。至于提取,你可以使用extraction
分隔符(>>
)。
在你的例子中,你正在对字符本身进行数学运算(将它们的数字 ASCII 表示加在一起,这可能会打印出不可打印和不可见的字符)。可打印的 ASCII 字符范围从 32(space 字符)到 127(删除字符)(基数 10)。当对 '1' + ' ' + '1' 求和时,您剩下的 (49 + 32 + 49) 或 (130) 超出了可打印字符范围。或者您也可能正在访问垃圾,正如@pm100 在评论中所说的那样 pointer arithmetic
.
下面是使用插入运算符的例子:
#include <iostream>
int main(void) {
int some_int = 1;
std::cout << "this is my " << some_int << "st answer on Whosebug :)"
<< std::endl;
return 0;
}
以及提取运算符:
#include <iostream>
int main(void) {
int num;
std::cout << "Enter an integer: ";
std::cin >> num; // stores the input into the `num` variable
std::cout << "The number is: " << num << std::endl;
return 0;
}
指针运算:
const char* get_filename(const char* _path, size_t _offset) {
return (_path + _offset);
}
// This is an example
//
// path = "path/to/my/file/file.txt";
// offset ^ ^
// 0 |
// + 16 ------------|
// path = "file.txt";
我正在使用在线编译器试验 C++ 中的语句。当我尝试 运行 这个特定代码时
cout << num[i] + " " + num[i];
在线编译器没有输出。我可以将 +
符号更改为 <<
但我想知道代码在这些在线编译器上没有给出任何输出的原因。
我试过的在线编译器是onlinegdb, programiz, and jdoodle。
#include <iostream>
#include <string>
int main() {
std::string num = "123";
int i = 0;
std::cout << num[i] + " " + num[i];
return 0;
}
C++ 不像 JavaScript 或许多 higher-level 语言,因为你不能用 +
或 ,
's. As shown in Lewis' 来分隔你的数据回答,您希望打印的每个项目都必须用 insertion
分隔符 (<<
) 分隔。至于提取,你可以使用extraction
分隔符(>>
)。
在你的例子中,你正在对字符本身进行数学运算(将它们的数字 ASCII 表示加在一起,这可能会打印出不可打印和不可见的字符)。可打印的 ASCII 字符范围从 32(space 字符)到 127(删除字符)(基数 10)。当对 '1' + ' ' + '1' 求和时,您剩下的 (49 + 32 + 49) 或 (130) 超出了可打印字符范围。或者您也可能正在访问垃圾,正如@pm100 在评论中所说的那样 pointer arithmetic
.
下面是使用插入运算符的例子:
#include <iostream>
int main(void) {
int some_int = 1;
std::cout << "this is my " << some_int << "st answer on Whosebug :)"
<< std::endl;
return 0;
}
以及提取运算符:
#include <iostream>
int main(void) {
int num;
std::cout << "Enter an integer: ";
std::cin >> num; // stores the input into the `num` variable
std::cout << "The number is: " << num << std::endl;
return 0;
}
指针运算:
const char* get_filename(const char* _path, size_t _offset) {
return (_path + _offset);
}
// This is an example
//
// path = "path/to/my/file/file.txt";
// offset ^ ^
// 0 |
// + 16 ------------|
// path = "file.txt";