第六行代码为什么用流成员函数输入和自定义操纵符输入结果显示不一样?

#include<iostream>
#include<iomanip>
using namespace std;
istream &input(istream &stream)
{
    stream.setf(ios::hex);//stream>>hex;
    cout<<"Enter:";
    return stream;
}
int main()
{
    int i;
    cin>>input>>i;
    cout<<"hex:"<<hex<<i<<"---dec:"<<dec<<i<<endl;
    return 0;
} 

img

img