|
cout << stream.str() << endl; This line is added in the loop for debugging only. and the output is a series of identical lines "%%1". I also looked up the value in the debugger, used the second ostrstream c'tor where you can supply a char * buffer to be used as the stream and watched that buffer, etc. All have the same effect.
I am using VC6 SP6 with the Feb 2001 SDK if that makes any difference. I tried the code with VC7.0 but that was an even worse experience than with VC6, calling stream.str() results in an access violation at address 0x00000000.
Christian Graus is always saying how streams are the best thing ever, but I am having serious doubts about that
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
<code>ostrstream stream;
for (int x = 1; x < 10; ++x)
{
stream.seekp(0);
stream << "%%" << x << ends;
CString str = stream.str();
}
</code>
In the above code I am getting str value %%1, %%2 and so on...
I don't know why you have the problem.
Regards
Anil
|
|
|
|
|
#include <iostream>
#include <strstream>
using namespace std;
int main(int argc, char* argv[])
{
unsigned x;
ostrstream stream;
for (x = 1; x < 10; ++x)
{
stream.seekp(0);
stream << "%%" << x << ends;
cout << stream.str() << endl;
}
return 0;
} output is 9 lines of %%1
I rebooted my computer, created a new project just to test this and yet I still get the same result. Oh well, I guess I will go back to the inefficient way that works for me.
Thanks for your attempt to help.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
Yes I got the solution but don't know the reason.
in VC6 you have to include #include <strstrea.h> instead of #include <strstream> I guess. The folloing code will work.
<code>
#include <iostream>
#include <strstrea.h>
using namespace std;
int main(int argc, char* argv[])
{
unsigned x;
ostrstream stream;
for (x = 1; x < 10; ++x)
{
stream.seekp(0);
stream << "%%" << x << ends;
std::cout << stream.str() << endl;
}
return 0;
}
</code>
Regards
Anil
|
|
|
|
|
Ok, mystery solved. The older version of strstream as declared in strstrea.h does not call freeze() which is why the code worked for you.
Thanks for your help
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
#include <iostream>
#include <strstream>
using namespace std;
int main(int argc, char* argv[])
{
unsigned x;
ostrstream stream;
for (x = 1; x < 10; ++x)
{
stream.seekp(0);
stream << "%%" << x << ends;
cout << stream.str() << endl;
stream.rdbuf()->freeze(false);
}
return 0;
} stream.str() calls freeze(true) to lock the buffer, I have to call freeze(false) to unlock it. Why your code worked without it is a mystery to me.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" - mYkel - 21 Jun '04
"There's not enough blatant self-congratulatory backslapping in the world today..." - HumblePie - 21 Jun '05
Within you lies the power for good - Use it!
|
|
|
|
|
This should work too...
stream.str() = "";
But as you had another solution, nevermind.
All the label says is that this stuff contains chemicals "... known to the State of California to cause cancer in rats and low-income test subjects." Roger Wright http://www.codeproject.com/lounge.asp?select=965687&exp=5&fr=1#xx965687xx
-- modified at 1:52 Friday 10th February, 2006
|
|
|
|
|
write a program that stored the total cost of 4 items in a grocery
store.
a. write a function to input the total cost into the array. the cost
entered should always range between 20000 and 40000.(check this
condition)
b. write a funcion to output the details.
* calculate the GCT for each item. (Note :-GCT is 20% of Total
cost). Also calculate the Net cost of each item (Note: -Net cost =
Total cost - GCT)
* finally print the Total Cost, GCT and Net Cost in a proper
tabular format.
please anyone.. your help is needed... any help is appreciated,..
thank you....
peter burnett. "the maestro"
|
|
|
|
|
You should ask a specific question! What have you done to solve these problems? Are you new at programming?
|
|
|
|
|
ok. thanks for replying. and yes i'm new at programming. its my 2nd week in class and i dont really understand the whole basic thing of c++. thats why i would like someone to at least do that question and i'll try and understand it.
peter burnett. "the maestro"
|
|
|
|
|
You won't learn anything unless you actually try to solve the problems yourself. People will help you more if you attempt to solve it on your own.
|
|
|
|
|
thats true.. i think i would have a better knowledge of the subject if i understood the basics more. thaz my main problem. and i really like the whole topic of programming. i just want to understand it more and more. thats why i'm trying to get as much help as i can.
peter burnett. "the maestro"
|
|
|
|
|
Look, just try it on your own, and when you get stuck with something, look on Google for that part that you got stuck on... If you don't find anything, then come here and ask us. That's what I do, and it works!
Lord Kixdemp
www.SulfurMidis.com
www.SulfurSoft.tk
[ftp://][http://][hotline://]tsfc.ath.cx
|
|
|
|
|
I guess this assignment goal is to reinforce what you have learned. What don't you specifically understand about programming C++?
|
|
|
|
|
how to use the signs and symbols. that is my main problem and that leads me to not knowing what to do at times.. i would really like to find out or get to know more abou programming.
peter burnett. "the maestro"
|
|
|
|
|
That tells me you need help with the basics. You need to read your textbook from the beginning and seek a tutor. Also, typing and compiling sample programs helps. Modifying sample programs is a great help. There's a lot of information on the web that explains basic concepts. This forum is not the best place to get the information you seek.
-- modified at 20:10 Thursday 9th February, 2006
|
|
|
|
|
ok.. good advice. thanks for your support. and do you have yahoo or msn messenger? you would be a great advisor to me right now during this course.. my yahoo is peterburn1@yahoo.com
peter burnett. "the maestro"
|
|
|
|
|
My e-mail address is jorgito11@aol.com,
|
|
|
|
|
Hi!
I've migrated a project from VS2003 to VS2005 and since then the application doesn't have XP themes anymore. What do I need to do to fix this?
Thanks!
Luc
|
|
|
|
|
I don't know, if the following, will be helpful! If you go to the project's property page under "ConfigurationProperties", you will find "Manifest Tools".
|
|
|
|
|
Hello everyone!
Remember my previous post? I think I almost got it now!
New problem: I'm reading a file with this:
char * curLine = new char[WIDTH/32];<br />
f[x]->getline(curLine, WIDTH/32);
This is my file:
<br />
ABCDEFGHIJKLMNO<br />
PQRSTUVWXYZABCD<br />
EFGHIJKLMNOPQRS<br />
TUVWXYZABCDEFGH<br />
IJKLMNOPQRSTUVW<br />
XYZABCDEFGHIJKL<br />
MNOPQRSTUVWXYZA<br />
BCDEFGHIJKLMNOP<br />
QRSTUVWXYZABCDE<br />
FGHIJKLMNOPQRST<br />
UVWXYZABCDEFGHI<br />
JKLMNOPQRSTUVWX
I'm outputting what my program reads to another file, but that file comes out a bit different when I open it with SciTE... It shows me some "NUL" character at the beginning of each line starting at line 2, and 1 character at the end is moved to the beginning of the next line, and that number increases by 2 each line... Am I reading my file wrong? Maybe it's a different number from WIDTH/32 ? (WIDTH/32 is 16, the number of characters per line). Sorry for bothering you guys so much about this... But thanks!
Lord Kixdemp
www.SulfurMidis.com
www.SulfurSoft.tk
[ftp://][http://][hotline://]tsfc.ath.cx
|
|
|
|
|
Strings in C are NULL-terminated. You must keep this in mind so as to allow room for this terminating character when reading in and writing out string data.
For instance: you're missing the last character of each line, because your buffer is one character short.
Then you're writing out NULLs, because you write out the terminating character with the rest of the string.
Grab your textbook or Google, and look up C strings - get a handle on how they work before you end up tromping all over memory.
|
|
|
|
|
|
|
Seems theres no dummies steps out there for me..
Heres what I do:
1) On dialog view I click on the main form, in messages I goto WM_KEYDOWN, type in method name OnKeyDown and push enter.
2) In the OnKeyDown method I type in
AfxMessage("key pressed");<br />
SetWindowText("New Text");<br />
None of these changes occur when I press a key.
What basic thing am I missing?
And when overriding methods such as OnOk, do I just use the add function wizard and do it as a protected method in my code?
Thanks,
Brian
|
|
|
|