|
It looks your code is already doing it: the while loop accepts user input again and again.
Am I missing something?
Veni, vidi, vici.
|
|
|
|
|
Not really, at the moment it only accepts one input then stops.
|
|
|
|
|
Ah, OK. That is because the if condition is wrong, it should be
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
note there is no trailing semicolon ( ';' ).
Veni, vidi, vici.
|
|
|
|
|
But how do i get the output from the console.
Here is the code:
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
using namespace std;
int Australia();
int main()
{
cout << "Welcome to Virtual Chat, ask any question you want.\n";
int Keep = 1;
string Input;
while (Keep == 1)
{
cin >> Input;
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
{
cout << "I am a computer, I do not have a Name";
break;
}
continue;
}
char f;
cin >> f;
return 0;
}
|
|
|
|
|
Change from
Dasttann777 wrote: cin >> Input; to
getline(cin, Input);
Veni, vidi, vici.
|
|
|
|
|
Really sorry for the nagging, but the loop now no longer works.
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
using namespace std;
int Australia();
int main()
{
cout << "Welcome to Virtual Chat, ask any question you want.\n";
int Keep = 1;
string Input;
while (Keep == 1)
{
getline(cin, Input);
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
{
cout << "I am a computer, I do not have a Name";
break;
}
continue;
}
char f;
cin >> f;
return 0;
}
|
|
|
|
|
Do you mean the break statement is working (remove it if exiting the loop after the cout << "I am .."; is not the intended behaviour)?
Veni, vidi, vici.
|
|
|
|
|
I feel like such an idiot, thankyou for pointing that out.
|
|
|
|
|
You are just learning.
Veni, vidi, vici.
|
|
|
|
|
One more time – capAVI question for a real capAVI gurus.
I have two, so far – I'll need more, MFC views with capPreview enabled.
Using
lResult = ::SendMessage (hWndC, WM_CAP_SET_PREVIEW,true,0L);
if(!lResult)
{
TRACE("\nFailed ");
}
The views are working – displaying the camera capture – but only when only one of them is activated.
When I try switching between two MFC windows only the one activated first actually displays the preview.
I am using Wnd class to initialize the preview and have no failures doing that for both views.
I do not quite get how the preview is actually putting the data into the capture window, been unable to debug / trace it thru.
Any reasonable help will be as always appreciated.
Thanks Vaclav
|
|
|
|
|
Here is an update.
I have implemented callback on error and received this error when the second view is activated
...no frames detected... check and make sure vertical synch is enabled...
So, why do I get this error on the second view only?
I am not sure where to fix it , some sources say to lower the capture dimensions and or fix it in the video hardware.
I''ll try different driver next.
|
|
|
|
|
The problem was / is that two implementations of the capDriverConnect happily connect, even when the driver is in use elsewhere.
Each view must diconnect the driver first, however, things are little more complicated since the view is in the tab and tabs only move the tabs up / down, I guess in z axis, and the preview stops, but that is all.
|
|
|
|
|
Hello everybody,
is it possible to determine the orientation of the selection into a CEdit?
If I select a part of the text with the mouse from left to right, the cursor blinks at the end.
But if I select the text from right to left, the cursor blinks at the beginning of the selection.
A GetSel(...); returns always the start and end index in the left-to-right order.
Or is there a function to retrieve the blinking cursor in a selection?
Big thanks in advance
|
|
|
|
|
Don't know if there's an "official" way of doing that, but you could try experimenting with GetCaretPos[^] and CharFromPos[^].
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
Exactly what I'm looking for.
Big thanks
|
|
|
|
|
Yourwelcome.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
Hi,
I have a Window app from which I am doing communication to a DOS app via named pipes
My method of doing this is to signal a event after I have queued the messages to the DOS app
The method from which I am signaling the event is inoked via SendWindow and has
and thus has a prototype LRESULT (WPARAM, LPARAM)
The problem is as soon as I SIGNAL the event control is transfered
When control is returned to the method which signaled the event it executes the
next statement which causes an access violation
listed below is the code in question
<pre lang='cpp'> LRESULT CprogDebug::receive_tcpip(WPARAM mywparam,LPARAM mylparam)
.
.
.
.
.
myeventptr->send_window = this;
myeventptr->SetEvent(); // queue message
return TRUE; // <==== access violation </pre>
Thanks in Advance
|
|
|
|
|
Any time I see this on return, I think stack corruption.
Charlie Gilley
<italic>You're going to tell me what I want to know, or I'm going to beat you to death in your own house.
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Does that mean I should increase the stack size
|
|
|
|
|
Not necessarily, although that could be a reason.
Does it declare the access violation when you reach the return statement or when you step through the return?
Charlie Gilley
<italic>You're going to tell me what I want to know, or I'm going to beat you to death in your own house.
"Where liberty dwells, there is my country." B. Franklin, 1783
“They who can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety.” BF, 1759
|
|
|
|
|
Try to strip down your function to an absolute minimum and see if it still happens.
|
|
|
|
|
in my experience it often indicates a calling convention mismatch, e.g. a stdcall/cdecl mixup.
|
|
|
|
|
Only if you need to, otherwise you'd just be masking the problem.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
Okay
I think Luc Patyn is right I use LPARAM myparam as char * the string points to string returned by TCP/IP from the server machine
Thanks
|
|
|
|
|
thank you for all those who pointed me to the stack that is indeed were the problem
was I had declared a CString as local/stack variable and and it was a long string
I moved it outside of the function global and okay
two question come to mind
1) how would I increase the stack if I needed it
2) using the new operator on the CString would seem to also alivate the problem
as that would allocate the string on the heap
thanks again
|
|
|
|