如何将cin传递给函数? 我正在学习C++中的流状态标志/函数,如GO()、GooBIT、BAD()、BADIT等。在使用std::cin进行测试时,我无法将cin作为参数传递给函数(编译器显示了很多错误)
我知道我可以用cin直接调用函数,比如如何将cin传递给函数? 我正在学习C++中的流状态标志/函数,如GO()、GooBIT、BAD()、BADIT等。在使用std::cin进行测试时,我无法将cin作为参数传递给函数(编译器显示了很多错误),c++,stream,arguments,cin,C++,Stream,Arguments,Cin,我知道我可以用cin直接调用函数,比如std::cin.good(),但我想知道如何将cin作为参数传递给函数 编辑: 我在编译过程中出错很多。例如: F:\cpp_programming\stream_states.cpp: In function 'int main()': F:\cpp_programming\stream_states.cpp:13:27: error: no match for 'operator<<' (operand types are 'std::ba
std::cin.good()
,但我想知道如何将cin作为参数传递给函数
编辑:
我在编译过程中出错很多。例如:
F:\cpp_programming\stream_states.cpp: In function 'int main()':
F:\cpp_programming\stream_states.cpp:13:27: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'void')
std::cout << "goodbit: " << print_state(std::cin) << std::endl;
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
F:\cpp\u programming\stream\u states.cpp:在函数“int main()”中:
F:\cpp\u programming\stream\u states.cpp:13:27:错误:与“运算符”不匹配,因为print\u state
不返回值,所以不能与插入运算符一起使用,因为print\u state
不返回值,所以不能与插入运算符一起使用@Carcigenicate我编辑了这个问题(添加显示的第一个错误)@Carcigenicate我已编辑问题(添加显示的第一个错误)
goodbit: good()=1 eof()=0 fail()=0 bad()=0
eofbit: good()=0 eof()=1 fail()=0 bad()=0
failbit: good()=0 eof()=0 fail()=1 bad()=0
badbit: good()=0 eof()=0 fail()=1 bad()=1
F:\cpp_programming\stream_states.cpp: In function 'int main()':
F:\cpp_programming\stream_states.cpp:13:27: error: no match for 'operator<<' (operand types are 'std::basic_ostream<char>' and 'void')
std::cout << "goodbit: " << print_state(std::cin) << std::endl;
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
print_state(std::cin);
#include <iostream>
#include <sstream>
void print_state (const std::istream& stream) {
std::cout << " good()=" << stream.good();
std::cout << " eof()=" << stream.eof();
std::cout << " fail()=" << stream.fail();
std::cout << " bad()=" << stream.bad();
}
int main() {
std::cin.clear (std::ios::goodbit);
std::cout << "goodbit: "; print_state(std::cin); std::cout << std::endl;
std::cin.clear (std::ios::eofbit);
std::cout << "eofbit: "; print_state(std::cin); std::cout << std::endl;
std::cin.clear (std::ios::failbit);
std::cout << "failbit: "; print_state(std::cin); std::cout<< std::endl;
std::cin.clear (std::ios::badbit);
std::cout << "badbit: "; print_state(std::cin); std::cout << std::endl;
return 0;
}
functionName(std::cin);