|
I don't know how you generate dynamic control ID ...
|
|
|
|
|
Simply you cannot have some random IDs for your control but you can have some range of IDs that can be used dynamically, Say from 1001(IDC_MYLIST_START) to 1101 (IDC_MYLIST_END) and use any of this IDs for you list control and make sure you did not have more than one list with the same ID in a given time. For this you have to use ON_NOTIFY_RANGE macro and your message map entry will look like,
ON_NOTIFY_RANGE(NM_CLICK, IDC_MYLIST_START, IDC_MYLIST_END, OnMyListClick)
And you message handler will be,
VOID OnMyListClick(UINT id, NMHDR * pNotifyStruct, LRESULT * result)
The variable "id" will have the list control ID which has been clicked.
Do your Duty and Don't expect the Result
|
|
|
|
|
I'm a total beginner with C++
The program is a calculator written with CodeBlocks
When I compile it CodeBlocks, everything works
but using Visual Studio and Visual Studio Command Line the code seems to be full of errors.
Can someone please assist me what is wrong in the code and how to fix it so that it is compatible with Visual Studio
___________________________________________________
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
// Program discription and Legal Information
cout << ("basic calculator to allow ") << endl;
cout << ("arithmetic operations like +, -, *, / .") << endl;
cout << ("License GPL - by Dominik Schaller - 2012 \n") << endl;
// we need two variables to store the numbers for calculation
float a; // variable a - we use "float" for precission
float b; // variable b - we use "float" for precission
// we need an arithmetic operator for the calculation (+, -, *, /)
string c_operator; // operant input variable as string
// we need a variable to store the result into memory for later console output
float c; // to store the result of arithmetic operation of a and b
// now we enter the first number and store it into memory
cout << ("Enter first number and press [ENTER] to continue\n"); // type number 1
cin >> a; // read number one into variable a
cout << endl; // cleanup
// now we type the operator into the console window as string
cout << ("type operator and press [ENTER] to continue\n"); // type the operator
cin >> c_operator; // read operator as string
cout << endl; // cleanup
// now we enter the second number and store it into memory
cout << ("Enter second number and press [ENTER] to continue\n"); // type number 2
cin >> b; // read number two into variable b
cout << endl; // cleanup
// in this case we use basic if and else staements
// but we also could have used a switch staement
if (c_operator == "+") // check to see if operator is "addition"
{
c = a+b; // if so, calculate (a+b)
}
else if (c_operator == "-") // check to see if operator is "subtraction"
{
c = a-b; // if so, calculate (a-b)
}
else if (c_operator == "*") // check to see if operator is "multiplication"
{
c = a * b; // if so, calculate (a*b)
}
else if (c_operator == "/") // check to see if operator is "division"
{
c = a/b; // if so, calculate (a/b)
}
// now we print the result out to the console screen
cout << ("result is: ") << c << endl; // finally print result on console screen
system ("pause"); // prevent console from shutting down wait...
return 0;
}
____________________________________________________
|
|
|
|
|
You do not explain what errors you get but at a guess it is on the line
string c_operator;
Try adding
#include <string>
in the preamble section of you program.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
aaaaaahh thanks
#include <string>
man.... that solved the problem
at least for compiling on the VC Command line
In Visual Studio (not Express Edition, Student Version), I get this:
2 error LINK1120:1 unresolved externals
1 error LINK2019:unresolved external symbol_WinMain@16 referenced in function__tmainCRTstartup
|
|
|
|
|
You need to change your project type in Visual Studio from "Windows application" to "Console application". The simplest way would be to create a new "Console Application" in Visual Studio and paste your source code into the main source file.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
|
how i can learn java online . in 20day if i will hard work on that and trully want to learn it how plz reply me
|
|
|
|
|
Asking in the java forum[^] might be a good place to start.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
Get a book start learning, if you have any idea about other oop you might be able to do that, otherwise it would be hard i guess
|
|
|
|
|
|
|
Is there a specific way of writing/reading a linked list to and from a random access file in c++....if so could someone please give me an example
|
|
|
|
|
djgmad wrote: Is there a specific way of writing/reading a linked list to and from a random access file in c++....if so could someone please give me an example
In computer science there isn't a standard way of doing much of anything. There is always somebody out there thinking outside the box and doing it completely different.
What you are looking for is called: serialization[^]. For a linked list... just keep in mind that you cannot dump pointers into a file and expect the memory addresses to be valid when you read them back. You could either dump the raw data into a file from memory... or perhaps use a serialization format[^]. There are alot of techniques and different opinions... so you would be well served by using your favorite search engine.
Best Wishes,
-David Delaune
|
|
|
|
|
Hey thanks Mr. David Delaune for your assistance , I've spent the last half an hour or so googling but still hasn't find an example to help...I'm really new to the whole OOP world and C++. Hope I'm not asking for much but is it possible for you to provide some examples please......thanks in advance.
|
|
|
|
|
djgmad wrote: Hope I'm not asking for much but is it possible for you to provide some examples please......thanks in advance.
Sorry I am probably not going to write any code because I don't know what the data in your linked list looks like. It is more work than I am willing to invest to create a serialization class that works for all data/object types. Anyway is the data you want to serialize dynamic in size or static? Does the data contain pointers to other objects in memory? Could you show me what the data looks like?
Best Wishes,
-David Delaune
|
|
|
|
|
You may well be lucky that I can't sleep tonight.
I'm too buggered to provide an overview or description. My efforts in crafting the code carefully are likely to be similarly short-changed..
You should use the debugger to step through the code and a hex-editor to review the created data-file. You'll notice I use (modified) pascal-style strings in the data file since it simplifies loading.
#include <stdio.h>
#include <string.h>
typedef struct node
{
char *text;
int num;
node *next;
};
void addNode(node* &listHead,char *newText, int newInt)
{
node *curPos;
curPos = listHead;
if (curPos == NULL)
{
listHead = new node;
curPos = listHead;
}
else
{
while (curPos->next != NULL)
curPos = curPos->next;
curPos->next = new node;
curPos = curPos->next;
}
curPos->next = NULL;
curPos->num = newInt;
curPos->text = strdup(newText);
}
void dispList(node *firstNode)
{
node *curNode;
curNode = firstNode;
while (curNode != NULL)
{
printf("Text: %s\n", curNode->text);
printf("Num: %d\n", curNode->num);
curNode = curNode->next;
if (curNode)
printf("\n");
}
}
void saveListToFile(node *firstNode, char *szFilename)
{
node *curNode;
FILE *fp;
char asciiNull = 0;
int sLen;
curNode = firstNode;
fp = fopen(szFilename, "wb");
while (curNode != NULL)
{
sLen = strlen(curNode->text);
fwrite(&sLen, sizeof(int), 1, fp);
fwrite(curNode->text, 1, sLen, fp);
fwrite(&curNode->num, sizeof(curNode->num), 1, fp);
curNode = curNode->next;
}
fclose(fp);
}
node *loadListFromFile(char *szFilename)
{
FILE *fp;
node *result = NULL;
char strBuffer[32];
int intBuffer, sLen;
char tmpChar;
fp = fopen(szFilename, "rb");
printf("filePos: %d\n", ftell(fp));
fread(&sLen, sizeof(int), 1, fp);
strBuffer[sLen] = 0;
fread(strBuffer, 1, sLen, fp);
fread(&intBuffer, sizeof(int), 1, fp);
addNode(result, strBuffer, intBuffer);
while (!feof(fp))
{
fread(&sLen, sizeof(int), 1, fp);
strBuffer[sLen] = 0;
fread(strBuffer, 1, sLen, fp);
fread(&intBuffer, sizeof(int), 1, fp);
addNode(result, strBuffer, intBuffer);
}
fclose(fp);
return result;
}
int main()
{
char buffer[32];
int i;
node *listHead, *loadedList;
listHead = NULL;
for (i=0; i<10; i++)
{
sprintf(buffer, "item_%d", i+1);
addNode(listHead, buffer, i+1);
}
saveListToFile(listHead, "list.dat");
loadedList = loadListFromFile("list.dat");
printf("Created list:\n");
dispList(listHead);
printf("Loaded list:\n");
dispList(loadedList);
return 0;
}
|
|
|
|
|
No.
You have already posted this here: http://www.codeproject.com/Messages/4214402/read-writing-Linked-List-to-a-random-access-file-i.aspx
Have a think about the problem and see what you come up with. Your problem is not the code, it is the concept. Come back when you have a clearly defined problem to solve.
==============================
Nothing to say.
|
|
|
|
|
djgmad wrote: Is there a specific way of writing/reading a linked list to and from a random access file in c++....
This is one large problem that should be broken down into four smaller ones. Start by creating code to manipulate a linked list. The items to be added can be hardcoded rather than come from a file. Dump the list to the screen rather than to a file. Once you have these two steps done, then start fiddling around with the file.
"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
|
|
|
|
|
|
|
great subject line; was there a question?
|
|
|
|
|
|
Insert link to google here
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
Sometimes it takes a lot of work to be lazy
Please stand in front of my pistol, smile and wait for the flash - JSOP 2012
|
|
|
|
|
siddharth0007 wrote: c
link list implementation
Here, let me fix the punctuation/grammar.
siddharth0007 wrote: See! (stands and points)
Link list implementation.
Gee it irks me when people forget the link/attachment...
|
|
|
|
|