everything (all the game info: character's health, position, ammo, etc) is stored in ram.
Both languages can access ram, so both work. C++ is
designed to let the programmer have easy access to ram. Something like..
*(0x12345678) = (DWORD) 100 ; would write 100 (as DWORD : learn data size.) to the addr 0x12345678.
This format only works if you're running the code form INSIDE the process (ie. injection)
The other option is the windows API WriteProcessMemory(), which any 'process' can call and write to another process's ram.
There are several ways cheats "get detected"
Search for known process by Title (ie. "CheatEngine" etc) - not very common (too easy to bypass I guess?)
Some hacks 'modify' the game's code! Like nopping and what-not. Some games (because of their programmer..) check their own source code to make sure it hasn't been modified! That's another way to get caught.
If you allocate a codecave in their process -- if they know the bytes of your program (cuz it's so popular), they can scan for the codecave.
Easiest way to get detected is by getting popular - once users start using the cheat and people complain, the game company has a reason to find your cheat and analyze it.
If you use code-caves / modify the process (or it's ram) in any way, maybe there is a way for them to catch you.
There are a few others, all depends on what you're doing exactly. 'hack' could mean a lot of things.
Learn both

Really the only difference is syntax, or a couple language features (only inherit from one base, interfaces, etc). Most of the other things like conditional statements / loops / core data types are very similar.
Personally I love the .net framework and C# (actually vb). It will more than likely do what you need. However, most people will argue it's easier to do in C++, but it forces you to learn the low-end details (mostly memory related) earlier on. So, up to you.
"EDIT: Also a good eBook to learn C# or C++" -- there are a few sticky threads in each programming section: I've seen a few collections of programming books for download, maybe one of them is good? Maybe "Ivor Horton's Beginning Visual C++ 2005 (2006)" (Unless you want to use a different compiler/IDE? Games might be on linux soon..

)