output of tcpdump is plain text generated by SOME of the fields in the header, thus many informations about a packet have been lost and total reconstruction is impossible. If you want to compare output of two programs, capture packets with tcpdump and log them as binaries.
sudo tcpdump -i eth0 -w test.out
After that you will be able to read from a file by
sudo tcpdump -i eth0 -r test.out
and as well to use it with wireshark. Also I may suggest you to modify snap length of captured packets to maximum 65535 or 0(if 0 is passed to -s argument it is interpreted as maximum which is 2^16 = 65535). Default is 68 or 96B(depending on the platform) and sometimes it isn't enough for all headers to be captured and dumped to binaries for later analysis. So, code with snap length modification would be
sudo tcpdump -i eth0 -w test.out -s 65535
. No need to use -s when reading from a file!