Your question is confusing in the English language.
Cloudflare doesn't offer web hosting, though, in the traditional sense.
They primarily offer DNS and CDN routing services.
They have other services, now, but those are the two main benefits for using their service.
In order to use their CDN, and route your traffic through them, you have to be using their DNS portal.
There might be some kind of jerry-rig way to do it, otherwise, but I'm not aware of it.
If you buy your domain someplace, like Namesilo or Uniregistry or whatever, you can use your domain registrars DNS services sometimes.
However, it's common practice to point your domain to the nameservers of some other DNS management tool.
For most, they will end-up pointing their domain to the nameservers of DNS management that is built directly into their web host.
Hosting Services like to do this, because it allows them to automatically manage a stack of things like web mail, re-directs, etc, automatically.
This is especially useful if you've got a host that installs and manages Wordpress automatically.
DNS management, however, is really a separate utility altogether, and doesn't necessarily need to be under the same roof as your hosting service.
Cloudflare is the fastest DNS and CDN, with the largest points-of-presence (POPs) in the world, for the cost.
It's highly preferred to use Cloudflare as a DNS, and also a CDN if possible, but even just as a DNS manager, it's a great experience.
They also offer domain registration and transfer options at-cost, now.
I use them for just-about all my sites, these days, even if I can't proxy through their CDN all the time.
So, even if you use Cloudflare as a DNS or CDN, then you will still need an external web host for your sites, and what have you.
These days, I mostly do static HTML sites or tumblr.
For the static sites, I host them on Object Storage buckets, and then use Cloudflare to give me automated SSL and unlimited bandwidth, etc, for free.
It's a great utility.