\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{unmercifulfish} \pdfinfo{ /Title (c-string-tips.pdf) /Creator (Cheatography) /Author (unmercifulfish) /Subject (C++ String Tips Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{A3A3A3} \definecolor{LightBackground}{HTML}{F3F3F3} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{C++ String Tips Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{unmercifulfish} via \textcolor{DarkBackground}{\uline{cheatography.com/25855/cs/6983/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}unmercifulfish \\ \uline{cheatography.com/unmercifulfish} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 9th May, 2016.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{\textless{}iomanip\textgreater{}}} \tn % Row 0 \SetRowColor{LightBackground} `setiosflags \seqsplit{(ios\_base::fmtflags} mask)` & Sets the format flags specified by parameter mask. Basically, the input is a bunch of format flags binary or'd together. `std::cout \textless{}\textless{} std::setiosflags (std::ios::showbase | \seqsplit{std::ios::uppercase);`} \tn % Row Count 10 (+ 10) % Row 1 \SetRowColor{white} \seqsplit{`resetiosflags(ios\_base::fmtflags} mask)` & Unsets the format flags specified by parameter mask. \tn % Row Count 13 (+ 3) % Row 2 \SetRowColor{LightBackground} `setprecision (int n)` & Sets the decimal precision to be used to format floating-point values on output operations. \tn % Row Count 18 (+ 5) % Row 3 \SetRowColor{white} `setw(int n)` & Behaves as if member width were called with n as argument on the stream on which it is inserted/extracted as a manipulator. \tn % Row Count 25 (+ 7) % Row 4 \SetRowColor{LightBackground} `setfill (char\_type c)` & Sets c as the stream's fill character. \tn % Row Count 27 (+ 2) % Row 5 \SetRowColor{white} `get\_money (moneyT\& mon, bool intl = false)` & Extracts characters from the input stream it is applied to, and interprets them as a monetary expression, which is stored as the value of mon. \tn % Row Count 35 (+ 8) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.4885 cm} x{2.4885 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{\textless{}iomanip\textgreater{} (cont)}} \tn % Row 6 \SetRowColor{LightBackground} `put\_money (const moneyT\& mon, bool intl = false)` & Inserts the representation of mon as a monetary value into the output stream it is applied to. \tn % Row Count 5 (+ 5) % Row 7 \SetRowColor{white} `get\_time (struct tm{\emph{ tmb, const charT}} fmt)` & Extracts characters from the input stream it is applied to, and interprets them as time and date information as specified in argument fmt. The obtained data is stored at the struct tm object pointed by tmb. \tn % Row Count 16 (+ 11) % Row 8 \SetRowColor{LightBackground} `put\_time (const struct tm{\emph{ tmb, const charT}} fmt)` & Inserts the representation of the time and date information pointed by tmb, formatting it as specified by argument fmt. \tn % Row Count 22 (+ 6) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{The return value for each of the above is unspecified, and they should only be used as stream manipulators.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Money Manipulators}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{\#include \textless{}iostream\textgreater{} // std::cin, std::cout \newline \#include \textless{}iomanip\textgreater{} // std::get\_money \newline \newline int main () \newline \{ \newline long double price; \newline std::cout \textless{}\textless{} "Please, enter the price: "; \newline std::cin \textgreater{}\textgreater{} std::get\_money(price); \newline \newline if (std::cin.fail()) std::cout \textless{}\textless{} "Error reading price\textbackslash{}n"; \newline else std::cout \textless{}\textless{} "The price entered is: " \textless{}\textless{} price \textless{}\textless{} '\textbackslash{}n'; \newline \newline return 0; \newline \}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{The} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}