Thread: Problem with record I/O

  1. #1
    Registered User
    Join Date
    Jul 2007
    Posts
    29

    Problem with record I/O

    I am trying to make a program that reads a record from a transaction fie and updates it in the master file. If the name exits in the master file, then the amount from the name's transaction file is added to the name's amount in the master file. If no name is found, then both the name and the amount is entered in the master file.

    I have stopped partway through and wanted to test out if it would print values so that I could go from there, but unfortunately no data is being printed. I have tried debugging this, and the program for some reason skips over while loops. And I cant figure out why.

    Here is the code:
    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	int amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[7] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32}};
    record temp, temp1, temp2;
    
    	ofstream outmaster;//creating master rec
    	outmaster.open("Master.dat", ios::binary);
    
    	for(int i = 0; i < 10; i++)
    	{
    		outmaster.write((char*)&master[i], sizeof(record));
    	}//for
    	outmaster.close();
    
    
    	ofstream outtrans;//creating trans rec
    	outtrans.open("Trans.dat", ios::binary);
    
    	for(i = 0; i < 10; i++)
    	{
    		outtrans.write((char*)&trans[i], sizeof(record));
    	}//for
    	outtrans.close();
    
    
    	//Arranging Data
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp1, sizeof(record));
    	while(intrans)
    	{
    		inmaster.read((char*)&temp2, sizeof(record));
    		while(inmaster)
    		{
    			if(temp1.name == temp2.name)
    			{
    				temp1.amt = temp1.amt + temp2.amt;
    			}//if
    
    
    			inmaster.read((char*)&temp2, sizeof(record));
    		}//while
    
    		intrans.read((char*)&temp1, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    	intrans.close();
    
    
    	cout << "Master.dat data: \n\n";
    	//ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    
    	inmaster.read((char*)&temp, sizeof(record));
    
    	while(inmaster)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		inmaster.read((char*)&temp, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    
    	cout << "\nTrans.dat data: \n\n";
    	//ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp, sizeof(record));
    	while(intrans)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		intrans.read((char*)&temp, sizeof(record));
    	}//while
    
    	intrans.close();
    
    	return 0;
    }//main
    Thanks for all your help in advance!

  2. #2
    Registered User
    Join Date
    Jul 2007
    Posts
    29
    I think I figured out why it doesnt work... I have to reinitialize the char pointer in the file right? So how would I go about doing that?

  3. #3
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    You're initializing record::amt (which is an int) with a bunch of double values.

    Relying on variables declaring in the initialization section of a for loop is non-standard. It was a bug in earlier versions of MSVC. Don't do it. Declare i again here:
    Code:
    	for(i = 0; i < 10; i++)
    Or declare i in the scope of the whole function, like temp, temp1, and temp2.

    I found both of those problems just by compiling your program. You should really turn on compiler warnings.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  4. #4
    Registered User
    Join Date
    Jul 2007
    Posts
    29
    Ok well I changed to code to this:

    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	double amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[7] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32}};
    record temp, temp1, temp2;
    int i;
    //etc...
    Thanks for pointing out those things to me, but can you perhaps tel me how to reinitialize the char pointer in the .dat files?

  5. #5
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    I'm working on it.

    Another thing I noticed is this:
    Code:
    if(temp1.name == temp2.name)
    You probably want to use strcmp() there, since tempX.name are C-style strings (char arrays).

    [edit] Here's something else. trans[] only contains 7 elements, but you assume in at least one place that it has 10 elements. [/edit]
    Last edited by dwks; 07-14-2007 at 05:34 PM.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  6. #6
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    Here's what I think is happening. Because you're re-using the same ifstream object without clearing the error state, one of the streams is encountering an error (probably because of the 7 elements in trans[]). Then, of course, you can't use the stream later on.

    If you use this:
    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	double amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[7] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32}};
    record temp, temp1, temp2;
    
    	ofstream outmaster;//creating master rec
    	outmaster.open("Master.dat", ios::binary);
    
    	for(int i = 0; i < 10; i++)
    	{
    		outmaster.write((char*)&master[i], sizeof(record));
    	}//for
    	outmaster.close();
    
        {
    	ofstream outtrans;//creating trans rec
    	outtrans.open("Trans.dat", ios::binary);
    
    	for(int i = 0; i < 10; i++)
    	{
    		outtrans.write((char*)&trans[i], sizeof(record));
    	}//for
    	outtrans.close();
    
    
    	//Arranging Data
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
        
    	intrans.read((char*)&temp1, sizeof(record));
    	while(!intrans.eof())
    	{
    		inmaster.read((char*)&temp2, sizeof(record));
    		while(inmaster)
    		{
    			if(temp1.name == temp2.name)
    			{
    				temp1.amt = temp1.amt + temp2.amt;
    			}//if
    
    
    			inmaster.read((char*)&temp2, sizeof(record));
    		}//while
    
    		intrans.read((char*)&temp1, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    	intrans.close();
        }
    
    	{
        cout << "Master.dat data: \n\n";
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    
    	inmaster.read((char*)&temp, sizeof(record));
    	
    	while(inmaster)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		inmaster.read((char*)&temp, sizeof(record));
    	}//while
    
    	inmaster.close();
    
    	cout << "\nTrans.dat data: \n\n";
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp, sizeof(record));
    	while(intrans)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		intrans.read((char*)&temp, sizeof(record));
    	}//while
    
    	intrans.close();
        }
    
    	return 0;
    }//main
    It works, to some extent (again, the 7 elements bug cause the last few to be messed up). So: change trans[] to have 10 elements, and also consider clearing the error state of those filestreams before you re-use them.
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  7. #7
    Registered User
    Join Date
    Jul 2007
    Posts
    29
    Wow thanks a lot dude. Your code works, but whenever I change my code to match yours i get errors... such as:

    error C2086: 'inmaster' : redefinition
    error C2086: 'intrans' : redefinition

    at the places where your define ifstream inmaster and intrans.

    Also, you are able to declare int i at both for loops while I cannot. The thing that stumps me is that when I copy and paste your code it works, but when I change it myself I get errors... why?

    Here is my entire code with all your suggestions and the changes you made to it:

    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	double amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[7] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32}};
    record temp, temp1, temp2;
    int i;
    
    	ofstream outmaster;//creating master rec
    	outmaster.open("Master.dat", ios::binary);
    
    	for(i = 0; i < 10; i++)
    	{
    		outmaster.write((char*)&master[i], sizeof(record));
    	}//for
    	outmaster.close();
    
    
    	ofstream outtrans;//creating trans rec
    	outtrans.open("Trans.dat", ios::binary);
    
    	for(i = 0; i < 7; i++)
    	{
    		outtrans.write((char*)&trans[i], sizeof(record));
    	}//for
    	outtrans.close();
    
    
    	//Arranging Data
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp1, sizeof(record));
    	while(!intrans.eof())
    	{
    		inmaster.read((char*)&temp2, sizeof(record));
    		while(inmaster)
    		{
    			if(strcmp(temp1.name, temp2.name) == 0)
    			{
    				temp1.amt = temp1.amt + temp2.amt;
    			}//if
    
    
    			inmaster.read((char*)&temp2, sizeof(record));
    		}//while
    
    		intrans.read((char*)&temp1, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    	intrans.close();
    
    
    	//Printing Data
    	cout << "Master.dat data: \n\n";
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    
    	inmaster.read((char*)&temp, sizeof(record));
    
    	while(inmaster)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		inmaster.read((char*)&temp, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    
    	cout << "\nTrans.dat data: \n\n";
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp, sizeof(record));
    	while(intrans)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		intrans.read((char*)&temp, sizeof(record));
    	}//while
    
    	intrans.close();
    
    	return 0;
    }//main
    When I try executing this code I get the two errors that I displayed at the beginning of my post.

  8. #8
    Registered User
    Join Date
    Jul 2007
    Posts
    29
    Quote Originally Posted by dwks View Post
    and also consider clearing the error state of those filestreams before you re-use them.
    What do you mean by this? Also, I am confused as to why there would be a 7 element bug, since the loops should stop when there are no more names to read; also I fixed the 7 element counter that you pointed out. Thanks a lot for your help this is greatly appreciated!

  9. #9
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    Sorry, I was offline for a while there.

    Quote Originally Posted by Stunner View Post
    Wow thanks a lot dude. Your code works, but whenever I change my code to match yours i get errors... such as:

    error C2086: 'inmaster' : redefinition
    error C2086: 'intrans' : redefinition

    at the places where your define ifstream inmaster and intrans.
    You missed the braces that I added. The indentation is really bad, but I added some {'s and }'s in. Look closely, or just copy my code in entirety.

    Also, you are able to declare int i at both for loops while I cannot. The thing that stumps me is that when I copy and paste your code it works, but when I change it myself I get errors... why?
    I just explained this above. I should have made the extra braces clearer. They're blue, but the eye tends to skip over things that look familiar, I guess.

    Here is my entire code with all your suggestions and the changes you made to it:
    I've added the braces, marked very conspicuously.

    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	double amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[7] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32}};
    record temp, temp1, temp2;
    int i;
    
    	ofstream outmaster;//creating master rec
    	outmaster.open("Master.dat", ios::binary);
    
    	for(i = 0; i < 10; i++)
    	{
    		outmaster.write((char*)&master[i], sizeof(record));
    	}//for
    	outmaster.close();
    
    
    	ofstream outtrans;//creating trans rec
    	outtrans.open("Trans.dat", ios::binary);
    
    	for(i = 0; i < 7; i++)
    	{
    		outtrans.write((char*)&trans[i], sizeof(record));
    	}//for
    	outtrans.close();
    
    
    	//Arranging Data
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp1, sizeof(record));
    	while(!intrans.eof())
    	{
    		inmaster.read((char*)&temp2, sizeof(record));
    		while(inmaster)
    		{
    			if(strcmp(temp1.name, temp2.name) == 0)
    			{
    				temp1.amt = temp1.amt + temp2.amt;
    			}//if
    
    
    			inmaster.read((char*)&temp2, sizeof(record));
    		}//while
    
    		intrans.read((char*)&temp1, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    	intrans.close();
    
        { /* begin new block */
    
    	//Printing Data
    	cout << "Master.dat data: \n\n";
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    
    	inmaster.read((char*)&temp, sizeof(record));
    
    	while(inmaster)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		inmaster.read((char*)&temp, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    
    	cout << "\nTrans.dat data: \n\n";
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp, sizeof(record));
    	while(intrans)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		intrans.read((char*)&temp, sizeof(record));
    	}//while
    
    	intrans.close();
    
        } /* end block */
    
    	return 0;
    }//main
    It's not a good idea to do that, though. I just did it to get it to compile because I suspected the streams were in an error state. The better solution is below:

    > and also consider clearing the error state of those filestreams before you re-use them.
    What do you mean by this?
    If you're going to use the same variable, call
    Code:
    stream.clear();
    Of course, if you fix the 7 bug (I explain it lower down), then you don't have to worry about streams in error states, because it shouldn't happen. Still, it could happen, so it's best to handle it.

    Also, I am confused as to why there would be a 7 element bug, since the loops should stop when there are no more names to read; also I fixed the 7 element counter that you pointed out. Thanks a lot for your help this is greatly appreciated!
    Since the first loop went until 10 where it should have gone until 7, three garbage structures were written to the file. When reading from the file, the last three are messed up, not because of any error on the part of the code but because the actual data in the file is messed up. Here's the output I get:
    Code:
    Master.dat data: 
    
    Helen     10.00
    Julie     20.00
    Lena      30.00
    Alan      40.00
    Annie     50.00
    May       60.00
    Lee       70.00
    Sam       80.00
    June      90.00
    Bill     100.00
    
    Trans.dat data: 
    
    Lena      10.00
    Julie      5.75
    Lee       15.02
    Ed        40.00
    Julie     10.00
    Art        5.00
    Bill       7.32
    ©ËP€d[6..Helen0.00
               0.00
               0.00
    I think you can see what I mean.

    So here are the changes I suggest all applied to your program. Enjoy. (I was going to run it through codeform, but my computer's crashed so badly that I can't. Maybe once I reboot.)
    Code:
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <fstream>
    
    using namespace std;
    
    struct record
    {
    	char name[15];
    	double amt;
    };
    
    int main()
    {
    record master[10] = {{"Helen", 10.},{"Julie", 20.},{"Lena", 30.},{"Alan", 40.},{"Annie", 50.},{"May", 60.},{"Lee", 70.},{"Sam", 80.},{"June", 90.},{"Bill", 100.}};
    record trans[10] = {{"Lena", 10.},{"Julie", 5.75},{"Lee", 15.02},{"Ed", 40.},{"Julie", 10.00},{"Art", 5.00},{"Bill", 7.32},{"empty",0.0},{"empty",0.0},{"empty",0.0}};
    record temp, temp1, temp2;
    int i;
    
    	ofstream outmaster;//creating master rec
    	outmaster.open("Master.dat", ios::binary);
    
    	for(i = 0; i < 10; i++)
    	{
    		outmaster.write((char*)&master[i], sizeof(record));
    	}//for
    	outmaster.close();
    
    
    	ofstream outtrans;//creating trans rec
    	outtrans.open("Trans.dat", ios::binary);
    
    	for(i = 0; i < 7; i++)
    	{
    		outtrans.write((char*)&trans[i], sizeof(record));
    	}//for
    	outtrans.close();
    
    
    	//Arranging Data
    	ifstream inmaster;
    	inmaster.open("Master.dat", ios::binary);
    	ifstream intrans;
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp1, sizeof(record));
    	while(!intrans.eof())
    	{
    		inmaster.read((char*)&temp2, sizeof(record));
    		while(inmaster)
    		{
    			if(strcmp(temp1.name, temp2.name) == 0)
    			{
    				temp1.amt = temp1.amt + temp2.amt;
    			}//if
    
    
    			inmaster.read((char*)&temp2, sizeof(record));
    		}//while
    
    		intrans.read((char*)&temp1, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    	intrans.close();
    
    
    	//Printing Data
    	cout << "Master.dat data: \n\n";
    	inmaster.clear();
    	inmaster.open("Master.dat", ios::binary);
    
    	inmaster.read((char*)&temp, sizeof(record));
    
    	while(inmaster)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		inmaster.read((char*)&temp, sizeof(record));
    
    	}//while
    
    	inmaster.close();
    
    	cout << "\nTrans.dat data: \n\n";
    	intrans.clear();
    	intrans.open("Trans.dat", ios::binary);
    
    	intrans.read((char*)&temp, sizeof(record));
    	while(intrans)
    	{
    		cout.setf(ios::showpoint);
    		cout.setf(ios::fixed);
    		cout.precision(2);
    		cout << temp.name;
    		cout.width(15 - strlen(temp.name));
    		cout.setf(ios::right);
    		cout << temp.amt << endl;
    		intrans.read((char*)&temp, sizeof(record));
    	}//while
    
    	intrans.close();
    
    	return 0;
    }//main
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  10. #10
    Registered User
    Join Date
    Jul 2007
    Posts
    29
    Nice man! Thanks dude! That helps.... finally I can go on from here hahah.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Help with binary file c++
    By lucky_mutani in forum C++ Programming
    Replies: 4
    Last Post: 06-05-2009, 09:24 AM
  2. A question related to strcmp
    By meili100 in forum C++ Programming
    Replies: 6
    Last Post: 07-07-2007, 02:51 PM
  3. Inventory records
    By jsbeckton in forum C Programming
    Replies: 23
    Last Post: 06-28-2007, 04:14 AM
  4. ANOTHER File i/o problem (well just "i" really)
    By Ranorith in forum C++ Programming
    Replies: 11
    Last Post: 10-14-2003, 01:08 AM
  5. Contest Results - May 27, 2002
    By ygfperson in forum A Brief History of Cprogramming.com
    Replies: 18
    Last Post: 06-18-2002, 01:27 PM