|
This is my GetString function, I open from root, but it will say: Bad file name, try again. But when I open a file without spaces, its okay.
<br />
string GetString( string Prompt )<br />
{<br />
bool Done = false;<br />
string InputValue;<br />
do<br />
{<br />
cout << Prompt;<br />
cin >> InputValue;<br />
if ( cin )<br />
{<br />
Done = true;<br />
}<br />
else<br />
{<br />
cout << "Bad Input!" << endl;<br />
cin.clear();<br />
cin.ignore(99,'\n');<br />
}<br />
} while ( !Done );<br />
<br />
cin.ignore(99,'\n');<br />
<br />
return InputValue;<br />
}<br />
|
|
|
|
|
VistaXP wrote: cin >> InputValue;
This will stop at the first whitespace character. Use getline() instead.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
I think this is the perfect time for you to learn to use the debugger.
You would have found this problem yourself...
And you would have felt very smart to do so.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.soonr.com">SoonR Inc -- PC Power delivered to your phone</A>
|
|
|
|
|
could anybody tell me,
How to i know memory usage and CPU usage of any specific application/Process using VC++ application?
ThankXXXXX.
|
|
|
|
|
|
abhijit bhopale wrote: How to i know memory usage and CPU usage of any specific application/Process using VC++ application?
See here and here.
"Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman
"To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne
|
|
|
|
|
Thank You Hamiod & David
-- modified at 22:30 Wednesday 24th October, 2007
|
|
|
|
|
Hi All,
I am using VC++ MFC Application.
I want to know the typeof my variable at run time, how can I do that? I hope it is possible with the typeof operator, but it gives me error like this identifier not found.So, is it possible with VC++ to use something like typeof operator??
Thanks in Advance.
Ashish Bhatt
|
|
|
|
|
Try to see 'CRuntimeClass' in the MSDN Library. Good luck
|
|
|
|
|
ashishbhatt wrote: I hope it is possible with the typeof operator
Where is that function? Or did u mean typeid() ?
|
|
|
|
|
|
The following represents standard C++ code, no Microsoft specifics involved.
void add_c_set(nfa_type& nfa, const string_set_type& c_set, bool and_flag) const;
void add_id_set(nfa_type& nfa, const ccid_set_type& id_set, bool and_flag) const;
The above problem occured, in long standing code, when I seperated some unrelated methods from a seperate template class, as they could stand on their own. Although I considered it a seperate issue, this must be related, the "Visual C++ 6.0" compiler started complaining about heap space (for symbols) when compiling for Unicode (not for ASCII). When compiling with "Visual C++ .Net" there are no problems.
The "string_set_type" is an STL set of STL strings (char or wchar_t) and "ccid_set_type" is a set of special identifiers. A "ccid" is basically a type derived from a template class that wraps an "unsigned char" value.
If you have any ideas, or have seen this problem before, please throw it out there, as I need a clue.
Thanks.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra
|
|
|
|
|
John R. Shaw wrote: string_set_type
John R. Shaw wrote: ccid_set_type
I think this use of macros is dumb and makes code unreadable. Can you provide the actual macros so we can see what we're dealing with ?
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillionOneHundredAndFortySevenMillionFourHundredAndEightyThreeThousandSixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it )
|
|
|
|
|
Christian Graus wrote: Can you provide the actual macros...
Christian,
Why would you think I was using macros? That would be counter productive and bad practice in C++. The code is pure standard C++, and applies nothing but the best practices. Using “typedef” is common practice, as examining any STL container will show.
typedef std::set<string_type> string_set_type;
typedef std::set<ccid_type> ccid_set_type;
The template takes the same arguments as “basic_string” and “string_type is defined as:
typedef std::basic_string<_CharT_, _Traits_, _Alloc_> string_type;
I am using a C++ STL style of coding, because this code is intended to be familiar to anyone use to using the STL.
The code has been working for months, but it needed some minor improvements. The “add_set” methods worked perfectly until yesterday, when I separated those other methods from a separate template class that has nothing to do with this one.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra
|
|
|
|
|
Looks like the compiler cant tell the differnce between string_set_type and ccid_set_type.
Is it possible that when this code is compiled the compiler only has a forward declaration of one or both of these?
ie...
class ccid_set_type;
class string_set_type;
class Foo
{
void Add(const ccid_set_type&);
void Add(const string_set_type&);
};
|
|
|
|
|
I don't think they are classes, I think they are #defines for stl containers.
Christian Graus - Microsoft MVP - C++
"also I don't think "TranslateOneToTwoBillionOneHundredAndFortySevenMillionFourHundredAndEightyThreeThousandSixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it )
|
|
|
|
|
Josh Gray wrote: Is it possible that when this code is compiled the compiler only has a forward declaration of one or both of these?
No, everything is declared where it is supposed to be. Until yesterday it compiled perfectly with both methods named “add_set”, as it has for months. As a matter of fact I had not touched this template until this unexplained phenomenon occurred.
It has to have something to do with making those other methods, I mentioned, stand alone, as that is when it started happening. It only happens with VC 6.0, as VC .NET has absolutely no problems with it, even at warning level 4.
Why it can not tell the difference between two types that have totally different signatures is very confusing. It has to be related to the compilers heap space, but it never gets this far if that error occurs.
error C2535: '…' : member function already defined or declared
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra
|
|
|
|
|
This is a long shot but you could try using the typename keyword
void add_c_set(nfa_type& nfa, const typename string_set_type& c_set, bool and_flag) const;
void add_id_set(nfa_type& nfa, const typename ccid_set_type& id_set, bool and_flag) const;
|
|
|
|
|
It was a long shot, but I tried it anyway. It had no effect, as expected.
I am getting offline now, but tomorrow I am going to reverse the changes I made yesterday and proceed with the changes one step at a time using the VC 6 environment instead of VC .NET, so I can see precisely when the error first appears.
Thanks for trying.
INTP
"Program testing can be used to show the presence of bugs, but never to show their absence."Edsger Dijkstra
|
|
|
|
|
If you know anything at all about either of these two functions, it's that SuspendThread[^] can be dangerous (primarily because it creates application deadlocks if not properly used). Read, Jochen Kalmbach's WebLog [^]
However, if you want to use the StackWalk64[^]function from the dbghelp.dll, you must call SuspendThread to get relavant and useful results.
So, what is the PROPER way to use SuspendThread? How could you possibly know of all the mechanisms and objects that are currently activated by a thread?
|
|
|
|
|
Baltoro wrote: However, if you want to use the StackWalk64[^]function from the dbghelp.dll, you must call SuspendThread to get relavant and useful results.
Only if you want to walk the stack of a thread other than the current one.
This is fairly obvious, if you didn't suspend the other thread it's stack would likely change while you are walking it.
The only problem in suspending another thread is that, as mentioned, any other threads waiting on the the suspended thread are going to keep waiting. This isn't a problem unless their waits time-out, even this isn't a problem because it tests your codes response to a rare error condition.
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
...thanks, ...cmk
I was referring to a remote thread, even though it was unstated.
I asked this question over on the Microsoft Technical Forums and got approximately the same answer.
It isn't really a problem, I was just curious.
|
|
|
|
|
using a socket I'm connecting to an irc server, when i do i get:
NOTICE AUTH :*** Processing connection to efnet.demon.co.uk
NOTICE AUTH :*** Looking up your hostname...
NOTICE AUTH :*** Checking Ident
NOTICE AUTH :*** Found your hostname
NOTICE AUTH :*** Got Ident response
this is all i get no welcome message, no matter what i send through this socket i don't get any response.
then after a while i get:
ERROR :Closing Link: 127.0.0.1 (Connection timed out)
thanks
|
|
|
|
|
What do you mean, you "get" that from the server? How are you receiving that text?
Are you sending the appropriate messages to connect to the server, as per the IRC protocol?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
What do you mean, you "get" that from the server? How are you receiving that text?
yes that is what i get from the server when i connect, via recv (s, buffer,bufferSize, 0);
Are you sending the appropriate messages to connect to the server, as per the IRC protocol?
not sure, according to this all you have to do is send commands like NICK name etc, once you are connected, but it doesn't seem to be working.
http://www.irchelp.org/irchelp/rfc/rfc.html
|
|
|
|