473,395 Members | 2,798 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

cout

How to make cout not printing on the console. i mean

void main()
{

cout<<"Hello world"<<endl;
}
Is there any way where i can block printing on console even when iam
cout in my code..I mean even using cout<<"Hello world"<<endl;.
This is shouldnt get printed on console..

regards

Jul 23 '05 #1
10 3472

"Gurikar" <ms*******@gmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...
How to make cout not printing on the console. i mean

void main()
int main()
{

cout<<"Hello world"<<endl;
}
Is there any way where i can block printing on console even when iam
cout in my code..I mean even using cout<<"Hello world"<<endl;.
This is shouldnt get printed on console..

regards


If you prefer not to print to the console, then don't print to the console.
The string "Hello world" is a literal. Its not a variable. To store the
literal string, use it to initialize a std::string variable.

#include <iostream>
#include <string>

int main()
{
std::string s("Just a string.\n");
s += "Just another string.\n";

// std::cout<< s << std::endl;

return 0;
}

Homework:
Whats a variable?
Whats a literal string?
Why is void main() not allowed?

Jul 23 '05 #2
ben
What's wrong of printing straight from string literal? The user just wants
to ask how to redirect cout to somewhere else.

So the answer is to use std::ios::rdbuf() function. A google search would
give plausible many examples :)

ben
If you prefer not to print to the console, then don't print to the console. The string "Hello world" is a literal. Its not a variable. To store the
literal string, use it to initialize a std::string variable.

Jul 23 '05 #3
Gurikar on 2005-05-12 09:10 spammed:
How to make cout not printing on the console. i mean

cout.rdbuf(other_buffer);

--
SirMike
the code is my strength
http://www.sirmike.grudziadz.com
Jul 23 '05 #4

"ben" <be******@hotmail.com> wrote in message
news:42**********************@news.optusnet.com.au ...
What's wrong of printing straight from string literal? The user just wants
to ask how to redirect cout to somewhere else.

So the answer is to use std::ios::rdbuf() function. A google search would
give plausible many examples :)

ben


Ben,

please place your responses either at the bottom of the post, or
interspersed with the text you're commenting on. Putting your comments at
the top is referred to as "top posting", and is frowned upon in usenet,
because it disrupts the normal order of reading (from top to bottom).

Thanks,
Howard


Jul 23 '05 #5

"ben" <be******@hotmail.com> wrote in message
news:42**********************@news.optusnet.com.au ...
What's wrong of printing straight from string literal? The user just wants
to ask how to redirect cout to somewhere else.

So the answer is to use std::ios::rdbuf() function. A google search would
give plausible many examples :)

ben


Nothing wrong with printing from a literal and you have graciously offered
ios::rdbuf() in the case the OP is indeed trying to redirect std::cout.
In my opinion, thats not the case here. But thats just a guess.
Lets see what the feedback says...

Thanks for the input.
Jul 23 '05 #6
>How to make cout not printing on the console.

Where do you want it to output character?
i mean

void main()
main() returns an int, always.

int main(){
cout<<"Hello world"<<endl;
}
I'll just rewrite that example to make sure you
start correctly.

# include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
}
Is there any way where i can block printing on
console even when iam cout in my code..I mean even
using cout<<"Hello world"<<endl;. This is
shouldnt get printed on console..


Where should it get printed? If it's another
stream, many have pointed the std::ios::rdbuf()
solution. If it's to another graphical mean such a a
graphical window or whatever, you will have to use
operating-system-dependent functions.

If you want to completely "block printing on
console", do something like

# include <iostream>

template <
class char_t,
class traits = std::char_traits<char_t> >
class null_outbuf
: public std::basic_streambuf<char_t, traits>
{
protected:
virtual int_type overflow(int_type c)
{
// noop
return traits::not_eof(c);
}
};

int main()
{
null_outbuf<char> no;

std::cout << "hello";

std::streambuf *old = std::cout.rdbuf(&no);
std::cout << "this is not printed";
std::cout.rdbuf(old);

std::cout << "I'm back";
}
--
Jonathan
[FAQ] - http://www.parashift.com/c++-faq-lite/

Jul 23 '05 #7
HI,
Actually i want print log information on console. So i use cout,
incase if i dont want log, i dont want to change the code, so i just
want cout not print on the console without changing any code. Its
something like this:

void log(char* str)
{
cout<<str<<endl;
}
int main()
{

bool b = true;

if(b)
{
log("Log is on");
}
log("hello");
log("world");
....
....
...
....
log("End");
}

So when bool b = true, it prints on console, now when bool b = false, i
dont want print it on console, how do i do this? I dont want change the
code of calling log eveywhere. something like i want make cout = NULL
when bool b = false. Is this possible.
One more question, what happends i use cout many times in windows based
application(console not present). Does it affect performance.
Regards
Jonathan Mcdougall wrote:
How to make cout not printing on the console.


Where do you want it to output character?
i mean

void main()


main() returns an int, always.

int main()
{
cout<<"Hello world"<<endl;
}


I'll just rewrite that example to make sure you
start correctly.

# include <iostream>

int main()
{
std::cout << "Hello world" << std::endl;
}
Is there any way where i can block printing on
console even when iam cout in my code..I mean even
using cout<<"Hello world"<<endl;. This is
shouldnt get printed on console..


Where should it get printed? If it's another
stream, many have pointed the std::ios::rdbuf()
solution. If it's to another graphical mean such a a
graphical window or whatever, you will have to use
operating-system-dependent functions.

If you want to completely "block printing on
console", do something like

# include <iostream>

template <
class char_t,
class traits = std::char_traits<char_t> >
class null_outbuf
: public std::basic_streambuf<char_t, traits>
{
protected:
virtual int_type overflow(int_type c)
{
// noop
return traits::not_eof(c);
}
};

int main()
{
null_outbuf<char> no;

std::cout << "hello";

std::streambuf *old = std::cout.rdbuf(&no);
std::cout << "this is not printed";
std::cout.rdbuf(old);

std::cout << "I'm back";
}
--
Jonathan
[FAQ] - http://www.parashift.com/c++-faq-lite/


Jul 23 '05 #8
"Gurikar" <ms*******@gmail.com> wrote in message news:11**********************@f14g2000cwb.googlegr oups.com...
HI,
Actually i want print log information on console. So i use cout,
incase if i dont want log, i dont want to change the code, so i just
want cout not print on the console without changing any code. Its
something like this:

[...]


#include <iostream>

class logger
{
public:
bool on;

template<typename T>
logger& operator << (T t)
{
if (on) std::cout << t; // else do nothing
return *this;
}
};

int main()
{
logger log;

log.on = true;
log << "should display to cout";

log.on = false;
log << "should not display";

return 0;
}

HTH,

--
Lionel B

Jul 23 '05 #9
"Lionel B" <me@privacy.net> wrote in message news:42***********************@news.sunsite.dk...
"Gurikar" <ms*******@gmail.com> wrote in message news:11**********************@f14g2000cwb.googlegr oups.com...
HI,
Actually i want print log information on console. So i use cout,
incase if i dont want log, i dont want to change the code, so i just
want cout not print on the console without changing any code. Its
something like this:

[...]
#include <iostream>

class logger
{
public:
bool on;

template<typename T>
logger& operator << (T t)


That should probably be:

template<typename T>
logger& operator << (const T& t)
{
if (on) std::cout << t; // else do nothing
return *this;
}
};

int main()
{
logger log;

log.on = true;
log << "should display to cout";

log.on = false;
log << "should not display";

return 0;
}

HTH,

--
Lionel B

Jul 23 '05 #10
Hi,

The answer to second part of the question...about cout's performance
issue...
...yes...writing too much on console causes a performace degradation.
You can check this by having a mechanism of enabling and disabling all
the couts in your program....oooops another problem!!....suggest to use
compiler macros for doing this.

-vs_p...

Jul 23 '05 #11

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

19
by: qazmlp | last post by:
I hope comp.lang.c will not find the following question as a complete off-topic. I would like to remove ie.comment out the 'cout' statements during compilation(actually preprocessing) time. ...
6
by: Omid | last post by:
Hi. I have problems when I try to redirect everything that is sent to cout to a file. I have one piece of code that works and one that does not work. The only difference is which headers I use....
5
by: Mastupristi | last post by:
I want to obtain the c++ equivalent of: unsigned short us = 347; printf("0x%04hX",us); that outputs "0x015B" I ried with: cout.setf(ios_base::hex,ios_base::basefield);
7
by: Joe C | last post by:
I'd like to have better control of text output to the console. I'm using Windows and have a little (non-standard) function to help me out: #include <windows.h> void locate(int x, int y ) {...
16
by: mrDumbass | last post by:
#include <iostream> #include <algorithm> #include <string> #include <fstream> using namespace std; /* i would like to keep the numbers of the output : Power , step etc, on the same place...
2
by: Generic Usenet Account | last post by:
What exactly is the difference between the hex manipulator and the following statement: cout.setf(ios_base::hex)? According to Stroustrup, Third Edition, Section 21.4.4, "once set, a base is...
5
by: Peteroid | last post by:
I'm doing a managed C++ application. Is there a way to re-direct 'cout' to output destinations other than the 'black console' that comes up? Specifically, re-direction to a text file? Thanks in...
3
by: shk253 | last post by:
Hi all - I'm trying to generate a payroll. I'm having trouble with the cout statements overwriting the previous inputs, e.g. enter info for employe 1: blah blah blah. Enter info for employee 2: blah...
58
by: Mark Casternoff | last post by:
I'm getting back into C++ after a long hiatus (they didn't have namespaces back then). I know this question is completely subjective, but I'd be interested in hearing which is the "better"...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.