草庐IT

c++ - 可以在声明的同一行上使用 istream 初始化变量吗?

这个问题在这里已经有了答案:Arethereanytrickstousestd::cintoinitializeaconstvariable?(6个回答)关闭4年前.下面两行可以浓缩成一条吗?intfoo;std::cin>>foo; 最佳答案 聪明的答案:intold;std::cin>>old;可怕的答案:intold,dummy=(std::cin>>old,0);正确答案:old必须先用声明定义,然后才能作为参数传递给operator>>。在变量声明中获取函数调用的唯一方法是将其放在上面的初始化表达式中。声明变量并将输入读入

c++ - 可以在声明的同一行上使用 istream 初始化变量吗?

这个问题在这里已经有了答案:Arethereanytrickstousestd::cintoinitializeaconstvariable?(6个回答)关闭4年前.下面两行可以浓缩成一条吗?intfoo;std::cin>>foo; 最佳答案 聪明的答案:intold;std::cin>>old;可怕的答案:intold,dummy=(std::cin>>old,0);正确答案:old必须先用声明定义,然后才能作为参数传递给operator>>。在变量声明中获取函数调用的唯一方法是将其放在上面的初始化表达式中。声明变量并将输入读入

c++ - 为什么我们需要绑定(bind) std::cin 和 std::cout?

默认情况下,标准输入设备与标准输出设备绑定(bind)在一起,形式如下:std::cin.tie(&std::cout);保证在调用输入之前输出缓冲区已被刷新。于是我尝试用std::cin.tie(0)解开,结果好像和被绑的没什么区别。#includeusingnamespacestd;intmain(intargc,char*argv[]){charc;cin.tie(0)cout>c;cout我测试错了吗?为什么我们需要将它们捆绑在一起?它们共享同一个缓冲区吗? 最佳答案 你的例子没有错(除了你应该在cin.tie(0)行之后添

c++ - 为什么我们需要绑定(bind) std::cin 和 std::cout?

默认情况下,标准输入设备与标准输出设备绑定(bind)在一起,形式如下:std::cin.tie(&std::cout);保证在调用输入之前输出缓冲区已被刷新。于是我尝试用std::cin.tie(0)解开,结果好像和被绑的没什么区别。#includeusingnamespacestd;intmain(intargc,char*argv[]){charc;cin.tie(0)cout>c;cout我测试错了吗?为什么我们需要将它们捆绑在一起?它们共享同一个缓冲区吗? 最佳答案 你的例子没有错(除了你应该在cin.tie(0)行之后添

C++:将 cin 分配给 ifstream 变量?

您知道stdin指定的常见stdio习惯用法“-”的文件名,例如if((strcmp(fname,"-"))fp=fopen(fname);elsefp=stdin;使用ifstream实例执行此操作的最佳方法是什么?我收到了一些将ifstream作为类的一部分的代码,我会喜欢添加代码来做等效的事情,比如:if(filename=="-")logstream=cin;//**howdoIdothis*?*elselogstream.open(filename.c_str()); 最佳答案 cin不是ifstream,但如果您可以使用

C++:将 cin 分配给 ifstream 变量?

您知道stdin指定的常见stdio习惯用法“-”的文件名,例如if((strcmp(fname,"-"))fp=fopen(fname);elsefp=stdin;使用ifstream实例执行此操作的最佳方法是什么?我收到了一些将ifstream作为类的一部分的代码,我会喜欢添加代码来做等效的事情,比如:if(filename=="-")logstream=cin;//**howdoIdothis*?*elselogstream.open(filename.c_str()); 最佳答案 cin不是ifstream,但如果您可以使用

c++ - 正确使用 cin.fail() 的方法

cin.fail();的正确使用方法是什么?我正在制作一个程序,您需要在其中输入一些内容。是否需要输入数字或字符不是很清楚。当用户输入字符而不是数字时,控制台会发疯。如何使用cin.fail()来解决这个问题?或者有没有更好的方法? 最佳答案 std::cin.fail()用于测试前面的输入是否成功了。但是,使用像bool值一样流式传输:if(std::cin){//lastinputsucceeded,i.e.!std::cin.fail()}if(!std::cin){//lastinputfailed,i.e.std::cin

c++ - 正确使用 cin.fail() 的方法

cin.fail();的正确使用方法是什么?我正在制作一个程序,您需要在其中输入一些内容。是否需要输入数字或字符不是很清楚。当用户输入字符而不是数字时,控制台会发疯。如何使用cin.fail()来解决这个问题?或者有没有更好的方法? 最佳答案 std::cin.fail()用于测试前面的输入是否成功了。但是,使用像bool值一样流式传输:if(std::cin){//lastinputsucceeded,i.e.!std::cin.fail()}if(!std::cin){//lastinputfailed,i.e.std::cin

c++ - 在密码提示中隐藏用户输入

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Readapasswordfromstd::cin我不能正常使用控制台,所以我的问题可能很容易回答或不可能做到。是否可以将cin和cout“解耦”,这样我在控制台中输入的内容就不会再次直接出现在其中了?我需要这个来让用户输入密码,而我和用户通常都不希望他的密码以plaintext出现在屏幕上。我尝试在stringstream上使用std::cin.tie,但我输入的所有内容仍然反射(reflect)在控制台中。 最佳答案 来自HowtoHideText:W

c++ - 在密码提示中隐藏用户输入

这个问题在这里已经有了答案:关闭11年前.PossibleDuplicate:Readapasswordfromstd::cin我不能正常使用控制台,所以我的问题可能很容易回答或不可能做到。是否可以将cin和cout“解耦”,这样我在控制台中输入的内容就不会再次直接出现在其中了?我需要这个来让用户输入密码,而我和用户通常都不希望他的密码以plaintext出现在屏幕上。我尝试在stringstream上使用std::cin.tie,但我输入的所有内容仍然反射(reflect)在控制台中。 最佳答案 来自HowtoHideText:W