Many small trattorias and gelaterias prefer cash. ATMs are widespread but charge withdrawal fees.
Use Italian bank ATMs (Intesa, Unicredit) rather than tourist-area Euronet machines (which charge 5+€ per withdrawal).
Always carry €20–50 in small notes.