I was able to reproduce your problem.  The issue is that you declared
a variable named stdout, which is a name used by the C standard.  Just
rename that variable.

--David

On Sun, Jun 4, 2017 at 8:31 AM, bob by <[email protected]> wrote:
> 2017-06-02 15:47 GMT+04:00 bob by <[email protected]>
>
>> Can somebody here write a replacement for the standard cout, that will be
>> able to print strings and integers, and internally will just redirect to
>> puts and itoa? I'm only starting with C++, I'm not sure how to do it.
>>
>
> So, I'm trying to do this, This code seems to more or less work, but adding
> #include <string> causes compile error at the HANDLE. Error says
> "declaration of _imp__iob as array of references".
>
> I kind of want to try out std::string, even though I don't know how it's
> different from char*.
>
> #include <windows.h>
>
> class cout_c
> {
> public:
>     HANDLE stdout;
>     void init()
>     {
>         stdout = GetStdHandle(STD_OUTPUT_HANDLE);
>     }
>     cout_c& operator<<(char* s)
>     {
>         WriteFile(stdout, s, strlen(s), NULL, NULL);
>         return *this;
>     }
> };
>
> cout_c cout;
>
> int main()
> {
>     cout.init();
>     cout << "1234567890";
> }
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Mingw-w64-public mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to