This program does coordinate-conversions between Latitude-Longitude and UTM, with several styles supported for each. Latitude and Longitude can be in degrees or degrees:minutes or degrees:minutes:seconds, with conventional signed numbers, or with N|S and E|W signs at either end of a coordinate; UTM in either Zone N|S Easting Northing or Zone Easting Northing, and the latter can have either a signed Northing or the more commonly used style; more details are found in the Usage routine.
What sets this program apart from other similar ones is the flexibility it offers in input-formats and in specifying the desired output-format or formats. It can be used with cmdline arguments or with an input-file where each line has a position to be converted.
Working on it again in 2010 led me to write several rants: UTM is not KISSable, and Datum-Conversion, NADCON, and NTv2.
LatLong-UTM.cpp the C++ program;
an online converter based on that C++ program (2010-08).