All of the integer values read ok, and are placed into the array as I would like it. However, the string does not. Using the debugger, it says that each of the elements has 16 stored in them.
Within the .txt file I have the following structure
"AC" 1 1 0 0 0 0 0

You need to tell me what the value for NUM_CARDS is. Does your text file actually have quotes around the initial string values? If so, they will be included in the structure. C strings are NULL terminated, you must be sure to leave at least one extra element in your array.

Keep in mind that this is VERY unsafe coding practice! This is where buffer overflows happen! It is much better to read the data from file into a fixed length buffer (being sure, of course, not to overflow that buffer, see fgets()), analyze the buffer to be sure nothing unexpected happened, then do a sscanf on the buffer. Sure it is extra code, but when your input file gets corrupted and doesn't cause your computer to crash, you will thank me then.

There are ways to read input in C++ that are safer, but I am an old C programmer and haven't taken to the C++ IO very well (though I am all over the other elements of OOP and love vectors, maps, etc.).

This is for a uni project, and as bad as it may sound, i'm not too worried about 'unsafe' coding practice. Just a 40% pass mark!
So far I have coded 508 lines for the whole program, and the majority of marks come from algorithms concerning the control of gameplay within a blackjack game. The project 'includes all learning outcomes for the unit' and file i/o is a very small part of the unit! But I am really beginning enjoy programming, something I wouldn't have said when I started the course! And would love to learn more advanced C after I have handed this project in!

Ye got two problems...

First, you need an array of individualCards_t to read in all the values (I think your variable NUM_CARDS is in the wrong spot, but am not going to do your homework for you), you only have the one (so it is constantly being overwritten). Second, your input data has one too many peices of information. fscanf considers linefeeds as white space, so when you read in the first 5 items into the array, then start to read in the second set, you are initially reading in the final zero on the first line. This is what I used as the input data: