I have seen a lot of people on forums telling to avoid the system()
function, like system("cls")
. I don't understand why.
Please tell me why I should avoid this function. And also, as clrscr()
doesn't work with CodeBlocks, what are other ways to clear screen without using the system()
function?
There are multiple problems here:
system()
as a function is cross-platform and available not just on Windows or Linux. However, the actual programs being called might be platform dependant. For example, you can use system()
to create a directory: system("md Temp")
. This will only work on Windows, as Linux doesn't know a command called md
. For Linux it would have to be system("mkdir Temp")
. This goes on, so you'd need a custom solution for each and every platform.If you're just doing some quick testing on one platform, using system()
is perfectly fine, but you shouldn't use it in production environments, unless you really have to. For example, you could allow the user to set an external program that is then executed. For something like this system()
is perfectly fine.