考虑这个(人工)示例:
#include <cstdio>
#include <iostream>
int main() {
volatile char test[] = "abc";
std::printf("%s\n", test);
std::cout << test << "\n";
}
使用GCC编译并运行后,会得到以下输出:
$ g++ test.cc
$ ./a.out
abc
1
正如您所看到的,printf
正确地打印字符串,而cout
打印1
。为什么在这种情况下写入cout
会产生1
?
https://stackoverflow.com/questions/24555288
复制相似问题