Question: I have written a program in vc++ that has different behavior in various case as below.

When I run it by F5 it works properly in release mode.

When I run it by ctrl + F5 it crashes when I start to send data to the program.

Outside of visual studio it crashes immediately.

I don't know how to find the bug. Any idea on
what is different between these cases?

Answer: 
Running ctrl + F5 will run the application without debugger.
(<http://msdn.microsoft.com/en-US/library/8b59xk0f(v=vs.90).aspx>)
This is not the same as running in release mode.

You can run your application in debug mode but without debugger.
It sounds stupid but is for example helpful if you want to stop the console from closing on exit. ([How to stop console from closing on exit?](https://stackoverflow.com/questions/4118073/how-to-stop-console-from-closing-on-exit))
You need to understand the difference between running an application in debug mode and release mode. F5 will generally help you to debug the application and ctrl + F5 will execute the application. There might be some issues in release mode that makes your vs to crash. Read [this](http://www.flounder.com/debug_release.htm) to get an understanding.