As others have said, the listings package is likely to do what you want using something like the following:
\lstset{ language=C, % choose the language of the code numbers=left, % where to put the line-numbers stepnumber=1, % the step between two line-numbers. numbersep=5pt, % how far the line-numbers are from the code backgroundcolor=\color{white}, % choose the background color. You must add \usepackage{color} showspaces=false, % show spaces adding particular underscores showstringspaces=false, % underline spaces within strings showtabs=false, % show tabs within strings adding particular underscores tabsize=2, % sets default tabsize to 2 spaces captionpos=b, % sets the caption-position to bottom breaklines=true, % sets automatic line breaking breakatwhitespace=true, % sets if automatic breaks should only happen at whitespace title=\lstname, % show the filename of files included with \lstinputlisting; } \lstinputlisting{HelloWorld.c}
A more powerful alternative would be to use a minted package, although it will be much more than what you are currently requesting, since it uses / requires the installation of fragments in your system so that it can completely tokenize the code that you give it.
Edd
source share