Just say No and stick to it. If you've given them money they should be grateful & appreciative, not greedy. Never give them more. Heck, at that point you likely regret giving them anything at all because you likely realize you've ben taken advantage of by a liar if their story has changed - all the more reason to stick to a No.
I sometimes give homeless panhandlers change, but only what I can afford to give away and not care about what they spend it on regardless of their story. For some I like to think they're actually honest and using it for food/shelter, but most are not and I accept that. Basically only give them what you can truly afford to give away And accept that they're likely buying drugs with it, but hope that they might buy something to eat or get out of the elements for a night.
Also, sometimes I'll ask if they're allergic to anything depending on what snacks I have with me and will offer them a protein bar or an apple or a bag of mixed nuts or something. More than 9 times out of 10 they accept and are very grateful - especially since protein is hard to come by for those on a $0 budget. Maybe you should make a point of carrying an extra small snack or two or a bottle of water or w/e so that when they ask for $ for food, you can offer them food directly instead. Just tell them "I don't carry cash in this bank card world, but I can offer you something to eat." If they're truly hungry, have no allergies to what it is, and can chew/digest whatever it is, then they'll appreciate that as much or more as cash. If they grumble, chances are they were lying anyways & are just seeking cash for drugs. (I had one women grumble that she didn't have teeth to chew an apple and walk away.. if I were her I'd find a ziploc bag & smash that f****r into apple sauce! But I guess if she could solve problems she wouldn't be in her situation in the first place..)
Also, there have been times when I skip the whole charade of nonsense and just give them drugs or alcohol. (cannabis/beer) There have been times when I walk buy and some group of homeless people is hanging out and they'll have a sign, or verbally say, that they're just looking to get enough money for a joint/beer & if I happen to have one of those things in my pocket, I'll just reach into my pocket, pull one out, and make their day. Costs around $1.50 or so for a cheap can of beer & damn does it ever make some people just light up with happiness! 
So, there ya go.. from a very experienced very giving person who's also sometimes been defrauded by these types:
1.) Only give them what you can afford to & ASSUME they're lying about spending it on food. Sometimes for the few cents or dollar or whatever I give them, I just think "Well, if I were in his shoes I'd probably want to be high af on my drug of choice, too.. so, I hope he gets high tonight and at least has a moment of escapism peace."
2.) Carry extra food & tell them you don't have cash but can offer a bite to eat.
_________________
No

for supporting trump. Because doing so is deplorable.