for (char &c :temp)c=toupper(c);不要太依赖auto,这样你会搞不清楚到底在操作哪个类型的变量,编译器提示出错误的时候就很容易感到莫名其妙……
话说你这句话cout<略虎啊!!cout<