| CodeGuru Home | VC++ / MFC / C++ | .NET / C# | Visual Basic | Newsletters | VB Forums | Developer.com |
|
|||||||
| Visual C++ Programming Ask questions about Windows programming with Visual C++ and help others by answering their questions. |
![]() |
|
|
Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
#1
|
|||
|
|||
|
I am new here and I have a problem with a piece of code. I tried may ways to get this code to work but still nothing.
The code consists of 3 major parts: menu(void); writeData(void); readData(void); functions. I was able to create menu(void); writeData(void); but I cannot do : readData(void); I need to use the comments to make it work the way it should. The output should be like this: Show records: __________________ Record #1 Name.... Smith Lol Street...... street something City...... Any Town State..... TX Zip 83949 __________________ Record #2 Name.... Smith Lol Street...... street something City...... Any Town State..... TX Zip 83949 __________________ . . . HERE IS THE CODE I GOT: //Specification: Append and display records in a address database #include <iostream> #include <fstream> #include <string> using namespace std; void menu(void); void writeData(void); void readData(void); string * split(string, char); const char FileName[] = "File.txt"; ofstream writingFile ("File.txt", ios: ut);ifstream readingFile ("File.txt"); int main () { menu(); return 0; } //end main void menu(void) { //allow user to choose to append records, display records or exit the program cout << "(E)xit , Choose to (A)ppend, (D)isplay records"<< endl <<endl; char choice =' '; cin>> choice; switch (choice) { case 'E': case 'e': break; case 'A': case 'a': writeData(); break; case 'D': case 'd': readData(); break; default: cout<< "ERROR"; break; } }//end menu void writeData(void){ //Write the Address Info to a file char endEntry; if (writingFile.is_open()){ do{ string name; string street; string city; string state; string zip; cout << "Name..... "; getline(cin, name); getline(cin, name); // I need to put that here (more info about this problem can be found here: http://en.allexperts.com/q/C-1040/Getline.htm) cout << "Street..... "; getline(cin,street); cout << "City..... "; getline(cin,city); cout << "State.... "; getline(cin,state); cout << "Zip..... "; getline(cin,zip); writingFile << name << "," << street << "," << city<< ","<< state <<"," <<zip << endl; cout << "Enter another Record? (Y/N)"; cin >> endEntry ; }while ((endEntry == 'Y') || (endEntry == 'y')); menu(); } writingFile.close(); } //end write data void readData(void){ string stringLine; if (readingFile.is_open()){ getline(readingFile, stringLine); while(!readingFile.eof()){ char theDeliminator = ','; split(stringLine, theDeliminator); } } else cout << "ERROR"; readingFile.close(); //read data from a file //use the split function to break a //deliminated line of text into fields }//end read data string * split(string theLine, char theDeliminator){ //Break theline into fields and save the fields to an array. //Each field will occupy one element in a character array. //theLine is a string with fields separated with theDeliminator character. //Assumes the last field in the string is terminated with a newline. //Useage: string *theFields = split(lineBuffer, ','); //determine how many splits there will be so we can size our array int splitCount = 0; for(int i = 0; i < theLine.size(); i++){ if (theLine[i] == theDeliminator) splitCount++; } splitCount++; //add one more to the count because there is not an ending comma //create an array to hold the fields string* theFieldArray; theFieldArray = new string[splitCount]; //split the string into seperate fields string theField = ""; int commaCount = 0; for(int i = 0; i < theLine.size(); i++){ //read each character and look for the deliminator if (theLine[i] != theDeliminator) { theField += theLine[i]; //build the field } else { //the deliminator was hit so save to the field to the array theFieldArray[commaCount] = theField; //save the field to the array theField = ""; commaCount++; } } theFieldArray[commaCount] = theField; //the last field is not marked with a comma... return theFieldArray; } //end split |
|
#2
|
|||
|
|||
|
Re: Challenge - reading/writing file problem... Please HELP!
1. Please give a good description of the problem.
Just saying "still nothing" is not enough, and besides it is not true. 2. Please, use tags when you copy your program here. Write [code] before your first line of code, and [/code] after your last line. This way your program will be much more easy to read, e.g. Code:
//Specification: Append and display records in a address database #include <iostream> .... |
![]() |
| Bookmarks |
| Tags |
| files , functions , reading , writing |
|
||||||
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|