On Jan 23, 2008 9:59 PM, nimak247 <[EMAIL PROTECTED]> wrote:
> Hello,
>
> I am attempting to take user input and write it to a file in the form
> of a record. I am having some difficulty in getting an integer and
> writing it to the file. I am not sure if I am receiving it in the
> wrong manner, or if I am writing it to the file in a wrong manner.
> Where the integer should be I get non-numbers (sometimes very strange
> ones). Can some please tell me what I am doing wrong? Any help would
> be greatly appreciated!
>
> nim.

Why are you using C-style strings? If you're doing a C++ solution you
should be using C++ strings, which are objects and much easier to use
than char * or char[].

> #include <iostream>
> #include <fstream>
> #include <string.h>
> using namespace std;
>
> int get_int(int default_value);
> char name[21];
>
> int main() {
>    char filename[81];  //receives the filespec of the file
>    int mileage;
>    int n; //receives the record number for file write
>    int recsize = sizeof(name) + sizeof(int);  //set the record size
>
>    cout << "Enter a filename: ";
>    cin.getline(filename, 80);
>
>    //open file for binary read/write access
>    fstream myFile(filename, ios::binary | ios::in | ios::out);
>    if(!myFile){
>       cout << "Could not open the file " << filename;
>           return -1;
>         }
>
>    //get record number and go to record
>    cout << "Enter a record number and press Enter: ";
>    n = get_int(0);
>
>    //get input from user
>    cout << "Enter model: ";
>    cin.getline(name, 20);
>    cout << "Enter mileage: ";
>    mileage = get_int(0);
>
>    //write data to file
>    myFile.seekp(n * recsize);
>    myFile.write(name, 20); //name var is type char, so no type
> conversion necessary
>    myFile.write(reinterpret_cast<char*>(&mileage), sizeof(int));
>
>    myFile.close();
>    return 0;
>   }
>
>   //get integer function.
>   int get_int(int default_value) {
>      char s[81];
>
>          cin.getline(s,80);
>          if (strlen(s) == 0) {
>             return default_value;
>                 }
>             return atoi(s);
>   }
>
>
>
>
>
> To unsubscribe, send a blank message to <mailto:[EMAIL PROTECTED]>.
> Yahoo! Groups Links
>
>
>
>



-- 
------------------------------------------------------------
"In the rhythm of music a secret is hidden;
    If I were to divulge it, it would overturn the world."
               -- Jelaleddin Rumi

Reply via email to