I last went to Prague with a group of friends last October. I have a no foreign transaction Mastercard card that I use for trips abroad, we had amassed a kitty of spending money which I placed on the card and used it for pretty much all of our expenditure, mainly bars and restaurants. We experienced no issues whatsoever. Amex might be the only issue, even in the UK there are plenty of major high street chains that won't accept it as it charges higher fees than Mastercard or Visa so you can imagine what the acceptance rate is for smaller, independent places.
Never found a place that only accepted cash, that's not to say that they don't exist but we never encountered any. A market trader is unlikely to accept cards but that's pretty much a global issue. Likewise Budapest, been several times and always paid by card at restaurants, bars etc, cash at a cheap stand for a sausage and beer but that's to be expected.