C/C++ :: Scanning CSV File Into Array Of Structs
Mar 18, 2015
I need to scan a .csv file that contains the following info:
programming,03,60,141,01,W,2015
programming,03,60,141,30,W,2015
Algebra,03,62,102,02,S,2013
Religion,08,98,938,20,F,2014
So i made a struct:
typedef struct CourseInfo {
int courseID;
char courseName[50];
char courseCode[13];
char term[7];
} courseinfo;
Where course code is the 4 numbers after the name together and the term is the letter and year in the last two pieces of info. I got this to work:
int main() {
FILE *p;
p = fopen("input.csv", "r+");
if(p == NULL) {
puts("The file could not be opened");
[Code] ......
But lets say i dont know how many lines i have in my file and i want to count them and then use that size for my array so i tried this by:
int main() {
FILE *p;
int lines = 1;
char ch;
p = fopen("input.csv", "r+");
if(p == NULL) {
[Code] .....
But the second program is not working for unknown reasons. I do not get any errors but its not scanning the info because when i print the info later on it prints out random symbols.
View 11 Replies
ADVERTISEMENT
Apr 15, 2013
I am having a lot of trouble being able to get data from a file and input it into given structs and arrays of structs and then outputting the file. We are given a file that contains 96 lines and looks like this:
Arzin, Neil
2.3 6.0 5.0 6.7 7.8 5.6 8.9 7.6
Babbage, Charles
2.3 5.6 6.5 7.6 8.7 7.8 5.4 4.5
This file continues for 24 different people and then repeats with different scores (the second line).
The first number, in this case is 2.3 for both people is a difficulty rating. The next 6 numbers are scores.
We are given this data in order to set up our structs and arrays and my code:
#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
#include <cmath>
using namespace std;
int main () {
ifstream inFile;
inFile.open("C://diveData.txt);
[Code] .....
View 1 Replies
View Related
Mar 10, 2015
That;s what i have so far: problem: the output data is not correct.
input file
1301 105515018 "Boatswain" "Michael R." CSE 230 ="R01"
1301 103993269 "Castille" "Michael Jr" CSE 230 ="R03"
1301 103993267 "Castille" "Janice" CSE 230 ="R03"
[Code]....
View 1 Replies
View Related
Sep 20, 2013
I want to write a program to record my neighborhoods's name and address by using an array of structs and file.
my array of structs is
Code:
#define SIZE 30
typedef struct{
char name[30];
char address[100];
}Detail;
Detail neighbor[SIZE];
And I want to make adding,deleting, and searching functions.Something like
Code:
void add();//Add name and address to a file,
//and add more to the same file if I want to.
void del();//Delete or Change some neighbor's name or address
//in the same file(Can I?)
void search();//Search name and show detail
So I started to code adding function first, but I don't know that I need to use pointer to code each functions relations, and I don't know how to check that my input's already exists yet. But I started some code below...
Code:
void add() {
int i=0;
FILE *fp = fopen("neighborhood.txt", "at");
if ( fp != NULL ) {
do{
[Code]......
View 8 Replies
View Related
Mar 10, 2015
I'm trying to read the data from a file i/o and put them into an array of structs. But when I run the program, it gives me a bunch of "garbage" as an output. my code and see
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
[Code].....
View 7 Replies
View Related
Mar 19, 2014
I have initialized a multidimensional array eg char fruit[5][10]...Then I would need to read in 3 words with spaces in between from user and store in fruit[5][10] e.g "pear apple orange"
The thing is that after typing orange, when I press Enter it still prompts me to enter more characters. How can I end the scanning of characters after orange ?
View 4 Replies
View Related
Dec 26, 2013
How to scan a CSV file and assigned variable to each of the integer scanned in a csv file
an example of the csv file:
0001,40,,10
How do I scan the CSV file and assign 0001 to variable student id, the 40 to variable module 01,the 1 without input entered to module02 and 10 to module03
View 6 Replies
View Related
Mar 26, 2013
I am trying to scan a 2 dimensional array to see if there are any duplicates within a row or column; i.e. the concept of a sudoku game.how to scan a row or column one at a time.
View 1 Replies
View Related
Dec 1, 2013
scanning a file with both words and INT's/Float numbers. This is the file data here.
15 25 200
3 10
17.99 22.99 109.99
100 2 4
5.99 99.99 20.00 49.99
10 10 10 10 10 10 10 10 10 10
3.99 5.99 7.99 8.00 5.00 5.00 5.00 6.00 7.00 9.99
[Code]...
What I'm focused on is reading in the first three numbers which I already have with fscanf and then reading in BUY TICKET with the digit afterwards. My problem is that I don't know how to reach that part of the file without scanning in something I don't want to. Also, how would I scan the number after scanning BUY TICKET? Would it be something like using %s and %d right afterwards?
View 4 Replies
View Related
Jun 11, 2013
I'm trying to read from a header file to take the image dimensions and other variables but I don't understand how to iterate through the "key" so it saves each line.
This is what the header file will always look like:
!INTERFILE :=
!imaging modality := nucmed
!version of keys := 3.3
;
!GENERAL DATA :=
[Code].....
Ideally it would just skip the keys that aren't wanted and keep moving through the lines. Should there be a for loop for the key (and if so, how does that work with pointers?) or should this method just be scratched...
View 6 Replies
View Related
Mar 6, 2015
I'm new to programming and I have a question about scanning numbers from a .txt file into a .c file. I have an array that has 50 integers and I want to read in 50 numbers from a .txt file. What would I type in on the command line to get the array to read in the .txt numbers?
View 1 Replies
View Related
Apr 1, 2013
I can't seem to remember everything I should about constructors. I'm looking for a way to create an array of structs, using a constructor. My code should explain.
struct myStruct
{
private:
int structInt1, structInt2;
[Code].....
View 2 Replies
View Related
Feb 14, 2013
I have an assignment where I need to use pointers to do a few things and I am a little confused on the syntax of it all. My question is how do you use a pointer to point to an array of structs.
For example
struct info{
char firstName[15];
char lastName[15];
};
main() {
info person[4];
cout << "The third letter of the second persons first name is: "; // ?????
}
how would I define a pointer to point to the third letter of first name the second person in the "person" array.
View 2 Replies
View Related
Mar 31, 2013
I am versed in qsorting struct members within a struct instance, as in the example below:
Code:
#include <iostream>
#include <stdlib.h>
using namespace std;
struct item_database {
[Code]....
What I CANT do however is to sort an array of structs by one of its members. This is a complete different problem even if it sounds similar.
In other words, the problem is this; Say we have a struct:
Code:
struct item_database {
int key;
string token;
};
Then we declare an array of this struct in the heap:
Code: item_database *idptr = new item_database[700000]; and initialize its values.
How would one go about sorting this heap array of structs by its member function "token"?
I used the following call to qsort (standard library) and call to the compare function but it doesnt work:
Code:
qsort (idptr, 1000, sizeof(string), compare);
Code: int compare (const void* a, const void* b){
if (*(char*)a >= *(char*)b)
return 1;
else
return -1;
}
Or in more lamens terms say we have the following stuct instances:
Key: Token:
1 Hello
2 World
3 How
4 Are
5 You
Then I need those structs to order according to token (alphabetically, increasing or decreasing depending whats in our compare function).....
View 3 Replies
View Related
Nov 20, 2013
what I am trying to do is to pass to a function the address of an array of structs, so I can later modify the items within the struct, within the array
Code:
typedef struct { //A struct of name auctionint bidder;float bid;} auction;
void myFunction (auction * auctionItem[]){(*aucItem[x]).bid = y;(*aucItem[x]).bidder = z;}
int main(){auction theItems[10];
myFunction(theItems);} Where x, y, and z can be any number.
When I try to run my code the IDE (I'm using Code::Blocks 12.11) does not give me any errors, but it does give me a warning:
warning: passing argument 3 of '<function name>' from incompatible pointer type [enabled by default]
and the note:
note: expected 'struct <struct name> **' but argument is of type 'struct <struct name> *'.Also, when I run the program, it will crash and return garbage.
View 6 Replies
View Related
Mar 6, 2015
I have a structure product_array *pa that contains a pointer *arr to an array of structs and count that adds 1 when a new product is added (set to NULL initially). I have to write a function which adds a new product entry to that array. One product entry has *title, *code, stock and price parameters. The array is dynamically allocated and I’m supposed to:
1. Reallocate space for array.
2. Update product_array.
3. Initialize it.
Also, code should be truncated to 7 characters.Products can be added multiple times, so the initial size is unknown.
Code:
void add_product(struct product_array *pa, const char *title, const char *code, int stock, double price)
{
for (int i = 0 ;; i++){
pa->arr = realloc(pa->arr, sizeof(struct product_array));
[code]....
View 3 Replies
View Related
Dec 18, 2013
How do I set all of these string and double value(s) to 0?
Code:
#define MAXcharacters 12
#define MAXaccounts 100
struct Records {
char userid[MAXcharacters + 1];
char password[MAXcharacters + 1];
double balance;
};
[code]...
View 3 Replies
View Related
Sep 5, 2014
What is the difference between reading from binary file between the following way:
struct aStrct{
int number;
}vars[];
while(file.good())
file.read((char*)&vars, sizeof(aStrct))
And
while(file.good())
file.read((char*)&vars[i], sizeof(aStrct))
i++;
View 2 Replies
View Related
Feb 24, 2013
Background: I'm writing a convolutional encoder (and decoder, eventually) for a microprocessor (PIC24), for which I'm using structs and pointers to move from state to state. So far as I'm aware, everything I'm using in the PIC involves nothing other than ANSI C.
I have a little experience with structures, having written a linked-list program for a class a couple years back, but nothing since and never used structure arrays. I have the feeling I'm missing something basic here, which is what's so frustrating. The most confusing error (and I suspect the root of most of them) is the 'state undeclared', which I just can't figure.
The errors I'm getting are:
encoder.c:11: warning: 'struct memstate' declared inside parameter list
encoder.c:11: warning: its scope is only this definition or declaration, which is probably not what you want
encoder.c: In function 'state_init':
encoder.c:22: error: two or more data types in declaration specifiers
encoder.c:25: error: 'state' undeclared (first use in this function)
encoder.c:25: error: (Each undeclared identifier is reported only once
[Code]....
Code:
Code: //Includes
#include <stdlib.h>
//------------------------------------------------------------------------------
//Creates state machine and passes back pointer to 00 state
void state_init(struct memstate* startpoint)
{
extern struct memstate
{
char output0; //output if next input is 0
[code]...
NB: I'm aware that at the moment, this code will do nothing except spin round that do-while loop. Once it's actually compiling I'll drop in some simple button-based test code so it'll check for the correct output.
View 9 Replies
View Related
Jul 15, 2013
Code:
void readFile(struct course *d, char* filename){
FILE* fp;
char buffer[100];
int i = 0, array_size = 100;
struct course *temp;
[code]....
I will be using this to read data from a file. I start with an array of 100 structures being passed to the readfile function. Once it reads 100 lines (i == array_size), I want to double the array size until I have finished reading the file.
Two questions.
1)My initial thought was that I needed to keep track of the lines read with my variable, i. However, is there a better way?
2)My program is crashing right now at the call to double_array_size function. What is wrong with my code? Never dealt with dynamically allocated array of structures and functions.
I read online that I should change my code in the following manner.
Code:
void readFile(struct course *d, char* filename) {
FILE* fp;
char buffer[100];
int i = 0, array_size = 100;
struct course *temp;
[code]....
I can paste the "error messages" if you like, but it is a page full of stuff I have never seen. glibc detected, Backtrace, Memory Map, and a bunch of numbers and hexadecimal stuff like addresses.
View 12 Replies
View Related
Mar 29, 2014
I have an array of structs (PlanetRecord). Each time I realloc, one of the records gets distorted. Here's my memory allocation code:
if(currentArraySize == 0) {
printf("allocating memory");
planetRecords =
( PlanetRecord* ) malloc( sizeof( PlanetRecord ) * BLOCK );
currentArraySize = BLOCK;
[Code] ....
I am increasing my array in multiples of 5 (or in this case, my constant BLOCK). This is the result of my printout (t1-t40 is correct, the rest of the values should be 1):
t1 1 1
t2 1 1
t3 1 31329
t4 31297 1
t5 1 31249
t6 31217 1
and so on .....
I noticed that in my test, realloc was called 7 times. My array has 7 distorted records. Each time I call realloc, it is distorting one of my records.
View 7 Replies
View Related
Feb 5, 2013
I am reading text from a file and trying to set names to structs. Here is the input file
Code:
2
3
Quincy Richard Steven
Donna Elizabeth Francine
5 2 9
4 5 7
5 9 6
4 6 5
7 8 9
6 9 1
Code:
#include <stdio.h>
#include <stdlib.h>
#define MAX_CHARS 20
// Structure that has 2 properties: name and scores.
struct person
[Code] ....
In the nested for-loop it should read in the name of each men and print it out, like so:
Code: Quincy Richard Steven
However it is printing out:
Code: QuincyRichardStevenDonnaElizabethFrancine
View 9 Replies
View Related
Jan 24, 2012
I'm creating a small port scanning app which use a port range defined by user.My problem with the code is that I find it not efficient enough meaning that it ping very slow, especially when ports are not responding meaning that I must wait for the timeout before continuing to next port.
I want to make this small app threaded. The problem here is that I'm kind of blank of how to implement threading in my program. This is my code which is a method which does the actual checking, the other part of the code is a simple button with for loop for advancing my port number.
Code:
private void ScanPort(IPAddress address, int port) {
using (TcpClient client = new TcpClient() {
IAsyncResult result = client.BeginConnect(address, port, null, null);
if (result.AsyncWaitHandle.WaitOne((int)nudTimeout.Value, false)) txtDisplay.AppendText("Port: " + port + " is open." + Environment.NewLine);
else txtDisplay.AppendText("Port: " + port + " is closed." + Environment.NewLine);
} }
I have read some basic threading tutorial but I just don't know how to implement this piece of code so I can check ports much faster.
View 3 Replies
View Related
Nov 20, 2013
Somehow only str2 is successfully scanned and str1 is not printed
Code:
printf("
Please enter two times in this way xx.xx xx.xx now ");
scanf("%s%s", str1, str2);
printf("
%s - %s:
", str1, str2)); result : - str2:
View 3 Replies
View Related
Nov 15, 2014
I have to make a numerical integration program, how I can write my code so that the user is able to write their own function that they want to integrate?
E.g. they would see the message: 'please enter your function' and would be able to write whatever they wanted e.g. 'x +5' then this would then be integrated by the program.
I have already written a program that can integrate a known function but would prefer that the user could choose their own.
View 2 Replies
View Related
Feb 13, 2014
I'm working on a program to store student's names, ID, and GPA, but for some reason the first and last name of the student are copied into every name of the database array once I scan them, regardless of whether or not add_student even runs.
typedef struct{
char *f_name;
char *l_name;
int stud_id;
double gpa;
} student_t;
int add_student(student_t db[], char fname[], char lname[], int iden, double grade, int db_size){
int i, error;
[Code] ....
For example, if I type "a Adam Johnson 1234 4.00" it'll add the first student with name Adam Johnson. However, if I try to add another student named "Kyle Walker", it overwrites "Adam Johnson" with "Kyle Walker" as soon as the names are scanned.
View 3 Replies
View Related