C++ Cout & Cin & System Ambiguous

C++ Cout & Cin & System Ambiguous

This kind of thing doesnt just magically happen on its own; you changed something! In industry we use version control to make regular savepoints, so when something goes wrong we can trace back the specific changes we made that resulted in that problem.

Since you havent done that here, we can only really guess. In Visual Studio, Intellisense (the technology that gives you auto-complete dropdowns and those squiggly red lines) works separately from the actual C++ compiler under the bonnet, and sometimes gets things a bit wrong.

In this case Id ask why youre including both cstdlib and stdlib.h; you should only use one of them, and I recommend the former. They are basically the same header, a C header, but cstdlib puts them in the namespace std in order to C++-ise them. In theory, including both wouldnt conflict but, well, this is Microsoft were talking about. Their C++ toolchain sometimes leaves something to be desired. Any time the Intellisense disagrees with the compiler has to be considered a bug, whichever way you look at it!

Anyway, your use of using namespace std (which I would recommend against, in future) means that std::system from cstdlib now conflicts with system from stdlib.h. I cant explain whats going on with std::cout and std::cin.

Try removing #include <stdlib.h> and see what happens.

If your program is building successfully then you dont need to worry too much about this, but I can imagine the false positives being annoying when youre working in your IDE.

C++ Cout & Cin & System Ambiguous

Leave a Reply

Your email address will not be published.