|
Tarun Jha wrote: ...only works some time Which technically means it does not work. If your algorithm is dependent upon its input in order to produce the correct output, it is wrong, period.
You should be able to do this entire exercise using pencil and paper before ever committing anything to code. Short of that and you are just guessing (hoping) at best.
"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
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Yes, because your code is still wrong, mainly because there is no logic to it. I gave you the answer in a previous comment, which should at least give you an idea of the logic involved in such a simple task.
|
|
|
|
|
The problem is obvious
if(i != j)
num[i] > num[j];
else
break;
Start with i=0 j = 0 what does the break do ... i==j doesn't it so it will call the break .. single step debug and watch
In vino veritas
|
|
|
|
|
this program does not halt
why ?
#include <iostream>
#include <string>
using namespace std ;
int main()
{
string in = " ";
while ( in != "" )
{
cout << "What is your name ? \n" ;
cout << "[ Pres enter to end this .]\n" ;
cin >> in ;
cout << "Hello " << in << " .\n" ;
}
cout << "n\n\n\[ GAME OVER ]\n" ;
cin.get() ;
return 0;
}
|
|
|
|
|
bluatigro wrote: why ? Have you stepped through it using the debugger (to see what value in has when you think it should be 'empty')?
The string class may not have a != operator so what you may be comparing is the object itself against a string literal (rather than the contents of the object).
"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
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
std::string have != operator. The problem is with cin, it does not takes new line char or leading space chars by default.
|
|
|
|
|
To make it working, change as following:
#include <iostream>
#include <string>
using namespace std ;
int main()
{
string in = " ";
while ( in != "" )
{
cout << "What is your name ? \n" ;
cout << "[ Pres enter to end this .]\n" ;
getline(cin, in );
cout << "Hello " << in << " .\n" ;
}
cout << "n\n\n\[ GAME OVER ]\n" ;
cin.get() ;
return 0;
}
|
|
|
|
|
Please help: I cannot find the header file for GetTickCount64()
I am using GetTickCount() but that is only good for about 49 days and my program runs forever..maybe.
Anyway, I am using C++ with MFC
I even tried this:
#if (_WIN32_WINNT >= 0x0600)
WINBASEAPI ULONGLONG WINAPI GetTickCount64(void);
#endif
But that only declares it so the compiler doesn't complain and don't need the header file but its not in any library or DLL that I can find.
I have tried searching everywhere on the computer and the internet, what am I doing wrong?
I am using both MSVC2005 and MSVC2015 with very bad luck.
Compilers parameters:
Application (.exe)
Use MFC in a Static Library
Use of ATL: Static Link to ATL
Use Multi-Byte Character Set
No Common Language Runtime support
and
#define WINVER 0x0601
Thanks in advance
Craig
modified 11-Oct-17 17:26pm.
|
|
|
|
|
Hi,
You did not give enough information... what compiler are you using?
What is the target platform?
It sounds like you are using an old compiler. If you are on an older compiler then you may need to download the "Platform SDK" or "Windows SDK"[^] to obtain more recent LIB and headers.
Side Note:
If these older SDK are critical for your business then I highly recommend downloading and keeping an archived copy before the Windows 7 SKU reaches EOL of the 2020 extended support. Once those operating systems reach EOL the SDK download links may disappear.
Best Wishes,
-David Delaune
|
|
|
|
|
Hi and thank you for the help.
The compiler is Microsoft visual Studio 2005 and 2015, (MSVC).
I run the program on these OS's: Windows 7, 8, and 10.
I search both compilers for any header file that contains GetTickCount64 but its not hear, Yes, I google the internet but nothing suggest where it is defined.
Microsoft defines it in Winbase.h but not in my compilers from Microsoft.
Most importantly, what is the LIB that has this function?
Its also helpful if I can find the header file but really not that important, just want the LIB and maybe a file date of the LIB to make sure I have the right one.
|
|
|
|
|
Well,
I can assure you that both of those compilers were distributed with headers and libs that include the GetTickCount64 function. If you are using VS2015 and cannot compile/link with the GetTickCount64 function then you need to fix your headers and compiler macro/defines.
Search all your files for _WIN32_WINNT and WINVER.
Using the Windows Headers[^]
Best Wishes,
-David Delaune
|
|
|
|
|
The function is defined in Winbase.h did you include it?
In vino veritas
|
|
|
|
|
Hi and thanks but I looked there and the Internet before I would post it here. I just need some extra help in locating this elusive function, GetTickCount64().
|
|
|
|
|
The documentation is clear: GetTickCount64 function (Windows)[^]. If you cannot find it then there must be something corrupted in your installation. Your original message says you are using VS 2005 and 2015; are you sure you have the latest SDK connected?
|
|
|
|
|
Yes, thank you. My environment variables were corrupted. Probably when installed the MSVC2015 while 2005 was active. I do have the latest WindowsSDK (v7.1A) and pointed to it inside MSVC2005 project, not options. It compiles and Links ok. I do have a warning message stating TmSchema.h is obsolete. Please include vssym32.h instead. However,not sure where its coming from so I have to search each file of 1,900 header files in the SDK to find a header that is pointing to it. It gets this message every-time it compiles a file because it does the stdafx.h first. So, I need to check each include in the stdafx.h too.
Thanks for the help
modified 12-Oct-17 8:35am.
|
|
|
|
|
I am on VS2017 and the only code required is
#define _WIN32_WINNT 0x0600
#include <WinBase.h>
void test(void)
{
long long i = GetTickCount64();
}
You also have me slight bemused you keep talking about finding the code, which is impossible it is buried in the kernel32.dll all you will find is the header file.
Here let me dynamically link it for you .. that is where the code is end of story. If it doesn't work your O/S is earlier than Vista.
#include "tchar.h"
typedef long long (*tickproc64) (void);
tickproc64 myTick;
long long test(void)
{
long long i = 0;
BOOL freeResult, runTimeLinkSuccess = FALSE;
HMODULE dllHandle = NULL;
dllHandle = LoadLibrary(_T("C:\\Windows\\System32\\kernel32.dll"));
if (NULL != dllHandle)
{
myTick = (tickproc64)GetProcAddress(dllHandle, "GetTickCount64");
if (runTimeLinkSuccess = (NULL != myTick))
{
i = myTick();
}
freeResult = FreeLibrary(dllHandle);
}
return (i);
}
In vino veritas
modified 12-Oct-17 4:49am.
|
|
|
|
|
Many thanks. The reason I wanted to know where the function resides is because I also saw the documentation of this function and I specified this kernel32 in my project to link with it but still didn't work. I do have more than one Kernel32 and tried them all. That is why I wanted to know where this function is defined.
As it turns out, my environment variables were corrupted and my directory search for the compiler/linker didn't go beyond its own base directory. I manually put in the WindowsSDK lib and include and got it running. Still have minor issues but will get there.
Thanks again for your patients.
Craig
modified 12-Oct-17 8:36am.
|
|
|
|
|
My problem is fixed, environment issues. But, how do you like VS2017? I hear its about like 2015. I would love to hear your comments.
Craig
|
|
|
|
|
Download and try it, costs nothing for a single developer except download time.
It is similar to VS2015 but a pile of new features.
Few annoyances you have to select to install C++ it doesn't default to installing it.
In vino veritas
|
|
|
|
|
The documentation for GetTickCount64 says to include windows.h - https://msdn.microsoft.com/en-us/ms724411[^]
When searching for the method declaration, I was able to find it in a file called sysinfoapi.h
This file is part of the Windows SDK.
On my machine I have 2 SDKs available and so 2 copies of sysinfoapi.h
C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\um\sysinfoapi.h
C:\Program Files (x86)\Windows Kits\8.1\Include\um\sysinfoapi.h Try compiling after downloading and installing the SDK from here - https://developer.microsoft.com/en-us/windows/downloads/windows-8-1-sdk[^]
«_Superman_»
I love work. It gives me something to do between weekends.
Microsoft MVP (Visual C++) (October 2009 - September 2013) Polymorphism in C
|
|
|
|
|
REALLY!! I did not know this. I looked at this file "sysinfoapi.h" and it looks like the contents of the file Winbase.h in the WindowsSDK
That is fantastic so if I compile for windows 8 or 10, I will include it.
I re-downloaded 8.1 and refreshed it because mine was downloaded about 2 years ago and I had forgotten all about them, thanks for the memory jog...getting old.
|
|
|
|
|
Any body know how to make VST for Overture 4.0?
|
|
|
|
|
|
this is a try at GP in C++ whit strings
GP what :
from array or grafic to formula
GP how :
1 : write random formula's
2 : sort formula's on error
3 : best fumula's mix to kid's
4 : some kid's are mutated
5 : if genration < max and error > whised goto 2
version 0.1.1
building function run
get "list" outof formula
bluatigro 9 okt 2017
#include <math.h>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std ;
typedef VSTR vector<string> ;
VSTR split( string in , char cut = ' ' )
{
VSTR uit ;
size_type i = 0 ;
size_type j = in.find( cut ) ;
while ( j != string::npos )
{
uit.push_back( in.substr( i , j - i ) ) ;
i = ++j ;
j = in.find( cut , j ) ;
if ( j == string::npos )
in.push_back( in.substr( i , in.lenght() ) ) ;
}
return uit ;
}
string dbl2str( double x )
{
stringsream ss ;
ss << x ;
return ss.str() ;
}
double str2dbl( string x )
{
}
class GeneProg
{
private :
int numberMode ;
VSTR genes ;
double in[ 10 ] ;
int inmax ;
public :
GeneProg()
{
numberMode = 0 ;
inmax = 0 ;
}
string run( string prog )
{
int einde = prog.find( ']' ) ;
int begin = einde ;
while ( prog[ begin ] != '[' ) ;
begin-- ;
return prog.substr( begin , einde - begin ) ;
}
} ;
int main()
{
GeneProg GP ;
string a = "[ + 7 [ - 2 3 ] ]" ;
string b = "[ * 9 [ / 8 6 ] ]" ;
cout << "[ test run ]" << endl ;
cout << "prog a = " << a << endl ;
cout << "run a = " << GP.run( a ) << endl ;
cout << "check a = " << 7 + ( 2 - 3 ) << endl ;
cout << "prog b = " << b << endl ;
cout << "run b = " << GP.run( b ) << endl ;
cout << "check b = " << 9 * ( 8 / 6 ) << endl ;
cout << "[ game over ]" << endl ;
cin.get() ;
}
|
|
|
|
|
See here for the answers to all of your questions.
Yes, I know you did not actually ask any questions, but if you did, the link would still be considered valuable.
"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
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|