Your dislike for iostreams may result from inexperience. There are lots of ways to use iostreams efficiently, but reading a character at a time isn't one of them. There are lots of ways to get a string out of a stream that are faster than reading it into a stringstream. I devote a whole chapter in <em>Optimized C++</em> to this subject.