&gt; ...what is the use case for a program that operates on arbitrary user defined types?<p>That&#x27;s not what&#x27;s going on. Neither C nor C++ really permits that.<p>We&#x27;re just talking about the relative merits of using printf and friends vs. using iostream to format data for the console or disk.<p>In either case, you have to write the code for your class that massages the class&#x27;s internals correctly, but the question is, do you write to the ostream extraction and istream insertion API, or do you write to the substantially less well defined printf-and-friends API?