注意:答案是按照特定的顺序给出的,但由于许多用户根据投票而不是给出的时间对答案进行排序,因此这里是答案的索引,它们是最有意义的顺序:
(注意:这是Stack Overflow的C++常见问题解答的一个条目.如果你想批评在这种形式下提供常见问题解答的想法,那么发布所有这些的元数据的发布将是这样做的地方.这个问题在C++聊天室中受到监控,其中FAQ的想法一开始就出现了,所以你的答案很可能被那些提出想法的人阅读.)
由于ANSI C99存在_Bool或bool通过stdbool.h.但是printfbool 还有一个格式说明符吗?
我的意思是伪代码:
bool x = true;
printf("%B\n", x);
Run Code Online (Sandbox Code Playgroud)
哪个会打印:
true
Run Code Online (Sandbox Code Playgroud) 我必须格式化std::string用sprintf,并将其发送到文件流.我怎样才能做到这一点?
假设我有这样的代码:
void printHex(std::ostream& x){
x<<std::hex<<123;
}
..
int main(){
std::cout<<100; // prints 100 base 10
printHex(std::cout); //prints 123 in hex
std::cout<<73; //problem! prints 73 in hex..
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,在从函数返回后,是否有任何方法可以将cout的状态"恢复"到原来的状态?(有点像std :: boolalpha和std :: noboolalpha ..)?
谢谢.
我有一个返回bool的函数:
bool restart()
{
std::string answer;
bool answered = false;
while(answered == false)
{
cout << endl << endl << "Do you want to play again? y/n : ";
cin >> answer;
if(answer == "y" || answer == "Y" || answer == "1" || answer == "yes")
{return true;}
if(answer == "n" || answer == "N" || answer == "0" || answer == "no")
{return false;}
}
}
Run Code Online (Sandbox Code Playgroud)
当我用它来调用它时:
cout << restart();
Run Code Online (Sandbox Code Playgroud)
我得到输出:
Do you want to play again? y/n …Run Code Online (Sandbox Code Playgroud) bool one = true;
bool two = false;
bool three = true;
bool four = false;
cout << boolalpha;
cout << "value of one : " << one << endl;
cout << "value of two : " << two << endl;
cout << "value of three : " << three << endl;
cout << "value of four : " << four;
When I run this code, the values of `one` and `two` get printed out as `true` and `false`. I …Run Code Online (Sandbox Code Playgroud)