By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,750 Members | 1,187 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,750 IT Pros & Developers. It's quick & easy.

load a txt file and linked list

P: n/a
Kay
1) If i want to read data from a txt file,
eg John; 23; a
Mary; 16; i
How can I read the above data stopping reading b4 each semi-colon and
save it in three different variables ?

2) If I enter a number, can I use to call a particular node ?
eg enter a number: 3
calling node of number 3
is it possible ?

Jul 22 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
Hello,

"Kay" <er*********@yahoo.com.hk> wrote in message
news:41**************@yahoo.com.hk...
1) If i want to read data from a txt file,
eg John; 23; a
Mary; 16; i
How can I read the above data stopping reading b4 each semi-colon and
save it in three different variables ?

2) If I enter a number, can I use to call a particular node ?
eg enter a number: 3
calling node of number 3
is it possible ?


Please refer to:
1)File Streams
2)fstream.getline()
3)possibly <vector> to store variables

Your second question is not clear.

Hope that helps,
Elias
Jul 22 '05 #2

P: n/a
In article <41**************@yahoo.com.hk>,
Kay <er*********@yahoo.com.hk> wrote:
1) If i want to read data from a txt file,
eg John; 23; a
Mary; 16; i
How can I read the above data stopping reading b4 each semi-colon and
save it in three different variables ?


getline() is normally used for reading an entire line, terminated by a
newline, but you can specify any terminator you like. So, to read the
first item (which looks like a name), you can do this (not a complete
program):

#include <ifstream>
#include <string>

using namespace std;

string name;

getline (infile, name, ';');

The next input operation resumes with the first character after the
';'. Therefore, you can read the rest of the data into separate strings
by repeating this trick as necessary, using the default terminator for the
last iten at the end of the line.

You probably want the numeric data (age?) to be an int instead of a
string. You can either convert the string that getline() gives you, into
an int by various techniques, or you can read it into an int in the first
place by taking some care:

string name;
int age;

getline (infile, name, ';');
infile >> age; // stops at the following ';'
infile.ignore (1000,';'); // skip past the ';'

Reading a single char also skips past the ';', but only if you can
guarantee that there's no extra whitespace between the number and the
semicolon.

--
Jon Bell <jt*******@presby.edu> Presbyterian College
Dept. of Physics and Computer Science Clinton, South Carolina USA
Jul 22 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.