We took the train from Budapest to Prague, which was smooth, and first-class ticket prices were low. The train was a Czech train. It was older and not as attractive as the Swiss or the French trains we had taken in the past. But it was comfortable enough.
Budapest has three main train stations. International destinations arrive and depart from the Keleti Palyaudvar or Eastern Railway Station. Trains to Romania and Germany leave from Nyugati Palyaudvar or Western Railway Station. If you were going to southern destinations like Zagreb, you would go to the Deli Palyaudvar or Southern Railway Station.
We planned to visit Prague, Bratislava, and Vienna, and trains going there leave from Keleti. From Budapest, it was a six-hour train ride to Prague, two hours to Bratislava, and three and a half hours to Vienna. We had to be very flexible with our dates because this was the start of the Christmas season and Christmas markets, which is popular in Europe. Hotels in Prague and Vienna were sold out or near full, so hotel rates were steep.
Your train station experience in Prague and Vienna will be completely different. The stations are central train stations, so they are larger and newer (i.e., heated) with many retail and food shops. The train station in Bratislava is tiny, but it was heated. The Keleti station is old and small and NOT heated. So, don't expect a nice, cozy waiting room where you can sit and sip your espresso coffee. Bundle up!
The Austrian trains between Prague and Vienna and Vienna and Bratislava are newer and faster, with speeds up to almost 100 km/h. You compared to a maximum speed of 50 km/h on the Czech trains. The restaurant car on the Austrian trains is like walk-up bars. There are train attendants to take your drink and food orders. Make sure you have the right currencies on the train. They don't take credit cards.
My husband tried to pre-purchase the train tickets in the U.S, but it was more expensive doing it that way due to extra charges like the use of credit cards and mailing fees. We need not have fretted because buying the tickets was quite easy. Train stations have both staffed ticket booths or electronic kiosks. Most everyone spoke enough English to understand you.One advice is to purchase your ticket at least the day before to allow you to get your bearings and understand where to find your platform. Fortunately, the Keleti station is not very large compared to Vienna or Prague.
To get to the Keleti station, you can take a 20 Euro cab ride. You can take a combination of trams and local trains which can take an hour or more. Tram and train tickets cost the equivalent of $1.00 per segment. Most of the time, no one checks your tickets but are spot-checked. There is a stiff fine if you are caught without one.
Watch out for unlicensed taxis ("gypsy" taxis). These are independently owned taxis that may or may not use meters. We had some extraordinary cab rides in Budapest. One charged us double and drove like a maniac, and the other couldn't stop talking. I think he thought he was entertaining us, but we thought he was just drunk!Now it's hard to tell an unlicensed taxi from a "legitimate" cab unless you speak Hungarian. Whenever possible, we took cabs at the hotel valet stand. The hotel appeared to be working with reputable cab drivers whose cars were cleaner, and the prices seemed standard.