954,500 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

C/ Need Help with Linked Lists please

Hello,

I have a project which involves basic implementations of linked lists, in C.

First though, I have to read the information from a file, which contains all different types(int, char, float) which is my problem...after i read the information into the nodes, it should be smooth sailing..

I was thinking something like...for example the first thing in the file is a name(string), but the next is an int...so I wasnt sure how to get the int after the first string.

while(fscanf("%s",temp.name) != EOF)
{

temp = CreateNode();
setData();
Insert();

}


:cheesy:

any suggestions with reading the information from the file ,and creating the linked list? thanks

nufanvandal
Newbie Poster
18 posts since Jul 2004
Reputation Points: 11
Solved Threads: 0
 

if you know the order of the data it's as simple as hardcoding the different input conversions in that order. For int that would be a call to atoi which converts a string into an int.
If not you'll have to write some code to detect what the input actually is and call the correct routine based on that...

jwenting
duckman
Team Colleague
8,392 posts since Nov 2004
Reputation Points: 1,662
Solved Threads: 337
 

okay i see what your saying, and I do already know what order the input is, so that makes it easier...so i have something like this...and it does work

fgets(temp ->head.name,50,ifp);
   fgets(temp ->head.foodType,50,ifp);
   fgets(temp ->head.servingSize,50,ifp);

   fscanf(ifp,"%d",&temp ->head.numOfCals);
   fscanf(ifp,"%d",&temp ->head.amountOfSodium);
   fscanf(ifp,"%f",&temp ->head.gramsOfFat);
   fscanf(ifp,"%d",&temp ->head.gramsOfChol);
   fscanf(ifp,"%f",&temp ->head.gramsOfSatFat);
   fscanf(ifp,"%d",&temp ->head.gramsOfCarbs);
   fscanf(ifp,"%d",&temp ->head.gramsOfSug);
   fscanf(ifp,"%d",&temp ->head.gramsOfFib);
   fscanf(ifp,"%d",&temp ->head.gramsOfProt);

and the output is(which is correct)
[PHP]
Roasted Turkey Breast
MEAT
3 oz.
160
55
6.000000
65
2.000000
0
0
0
24
[/PHP]

and I'm going to have to have a while loop which keeps creating new nodes until it hits the EOF...but thats another story...so for now....
i have another longer question but I can figure it out myself, if someone could tell me if fscanf() can read in strings? because when i tried to use fscanf for the first three items in the lists which are not ints or floats, but are strings it doesnt work i did something like fscanf("%s",temp -> head.name);
and the output is
[PHP]
RoastedTurkeyBreast0
0
0.000000
0
0.000000
0
0
0
0
[/PHP]
:o

thanks for your help

nufanvandal
Newbie Poster
18 posts since Jul 2004
Reputation Points: 11
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You