943,920 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 891
  • C++ RSS
Sep 16th, 2008
0

How to take a line in a file and put it into an array?

Expand Post »
I have to write this program that opens a file then sorts all these numbers in different ways. I plan on using the insertion method cause its one of the fastest, so that shouldn't be too difficult. But when you look at the text file its got spaces and numbers all over the place. I need the numbers of each category and a way to know which ones they belong to so I can sort them? My teacher has thrown in all kinds of ways to mess us up. I haven't taken C++ programming since freshman year and am completely lost. Heres a piece of my input file. Can anyone please help me?


Input File:

****************************************
LOAD BM SHEAR TORSION
STATION # (IN-LBS) (LBS) (IN-LBS)
******** ********** ********** *********
1 12345 23456 34567
2 12345 23456 34567
3 12345 23456 34567
****************************************
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
swbuko is offline Offline
12 posts
since Sep 2008
Sep 16th, 2008
0

Re: How to take a line in a file and put it into an array?

first create a structure that contains the four numbers that can be found on each line
C++ Syntax (Toggle Plain Text)
  1. struct nums
  2. {
  3. int stations;
  4. int lbs1;
  5. int lbs2;
  6. int lbs3;
  7. };

now when you read a line, put the data in a structure, then add the structure to an array of structures.
Sponsor
Team Colleague
Featured Poster
Reputation Points: 5608
Solved Threads: 2282
Retired and Enjoying Life
Ancient Dragon is offline Offline
21,953 posts
since Aug 2005
Sep 17th, 2008
0

Re: How to take a line in a file and put it into an array?

How do you add the data to a structure?
First I open my File in the program, then?



int main ()

{
ofstream myFile;
myFile.open ("InputFile.txt");

}



So I would have to put it in some sort of a structure then into a 2D array.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
swbuko is offline Offline
12 posts
since Sep 2008
Sep 17th, 2008
0

Re: How to take a line in a file and put it into an array?

C++ Syntax (Toggle Plain Text)
  1. int main()
  2. {
  3. vector<nums> theList;
  4. nums data;
  5. ifstream in("filename.txt");
  6. while( in >> data.stations >> data.lbs1 >> data.lbs2 >> data.lbs3 )
  7. {
  8. theList.push_back(data);
  9. }
  10.  
  11. // now you have an array of those structures.
  12. }
Sponsor
Team Colleague
Featured Poster
Reputation Points: 5608
Solved Threads: 2282
Retired and Enjoying Life
Ancient Dragon is offline Offline
21,953 posts
since Aug 2005
Sep 17th, 2008
0

Re: How to take a line in a file and put it into an array?

I get an error on the line that says pushback, im not too sure what push_back does though? I keep wanting to test it but i cant figure out these last two errors.

C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. int main()
  10. {
  11.  
  12. struct nums
  13. {
  14. int stations;
  15. int lbs1;
  16. int lbs2;
  17. int lbs3;
  18. };
  19. int theList;
  20. int vector;
  21. vector<nums> theList;
  22. nums data;
  23. ifstream in("InputFile.txt");
  24. while( in >> data.stations >> data.lbs1 >> data.lbs2 >> data.lbs3 )
  25. {
  26. theList.push_back(data);
  27. }
  28. return 0;
  29. }
Last edited by Ancient Dragon; Sep 17th, 2008 at 11:18 pm. Reason: add code tags
Reputation Points: 10
Solved Threads: 0
Newbie Poster
swbuko is offline Offline
12 posts
since Sep 2008
Sep 17th, 2008
0

Re: How to take a line in a file and put it into an array?

>> im not too sure what push_back does though
Did you bother to look it up? When you don't know what something does then you need to do some research and read abo9ut it.

You have to include the header file <vector>
lines 12-18: declare structures outside all functions. Move that up above main();

line 20: delete that line because vector is the name of a c++ class.
Sponsor
Team Colleague
Featured Poster
Reputation Points: 5608
Solved Threads: 2282
Retired and Enjoying Life
Ancient Dragon is offline Offline
21,953 posts
since Aug 2005
Sep 17th, 2008
0

Re: How to take a line in a file and put it into an array?

I just got it running, thats such a relief it seems like. Thanks so much. Its hard to follow what your doing though, just because my C++ class didn't cover some of this stuff. But my teacher, of course, could care less. Its an Aerospace engineering class that uses C++ and the instructor doesn't even know C++? He just assigns us random stuff and expects us to know how to do it haha. By the way I go to Alabama. Getting back on topic, the input file (the grader supplies it) will have a random number of sets of load stations such as:

set of Load Stations:

****************************************
LOAD BM SHEAR TORSION
STATION # (IN-LBS) (LBS) (IN-LBS)
******** ********** ********** *********
1 12345 23456 34567
2 12345 23456 34567
3 12345 23456 34567
****************************************

And each set will have a random number of Load Stations. Like they will all have 2 LS, or 3LS, or 4 LS, etc. If I'm understanding the code correctly it shouldn't a problem but I just thought I'd clear it up with you?
Reputation Points: 10
Solved Threads: 0
Newbie Poster
swbuko is offline Offline
12 posts
since Sep 2008
Apr 23rd, 2010
-1

Vector needs to include vector

Try to add the following line in the include part:

#include <vector>

Click to Expand / Collapse  Quote originally posted by swbuko ...
I get an error on the line that says pushback, im not too sure what push_back does though? I keep wanting to test it but i cant figure out these last two errors.

C++ Syntax (Toggle Plain Text)
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4. #include <cmath>
  5.  
  6. using namespace std;
  7.  
  8.  
  9. int main()
  10. {
  11.  
  12. struct nums
  13. {
  14. int stations;
  15. int lbs1;
  16. int lbs2;
  17. int lbs3;
  18. };
  19. int theList;
  20. int vector;
  21. vector<nums> theList;
  22. nums data;
  23. ifstream in("InputFile.txt");
  24. while( in >> data.stations >> data.lbs1 >> data.lbs2 >> data.lbs3 )
  25. {
  26. theList.push_back(data);
  27. }
  28. return 0;
  29. }
Reputation Points: 9
Solved Threads: 0
Newbie Poster
msnata2001 is offline Offline
1 posts
since Apr 2010

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: Reading .txt file into array!
Next Thread in C++ Forum Timeline: C++ Homework Help





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC