I have file that looks like this:
01 01 5.00 1.50 7.50
02 01 4.00 3.00 12.00
02 02 3.00 4.00 12.00
03 01 4.50 3.00 13.50
03 01 7.50 2.50 18.75
03 01 6.00 0.50 3.00
04 01 2.00 3.00 6.00
04 02 2.00 3.00 6.00
05 01 1.50 3.00 4.50
07 01 5.00 1.00 5.00
09 01 1.50 6.00 9.00
I am trying to read each line and store each column of data into separate arrays. Something like this:
int A[100] = {1, 2, 2, 3, 3, 3, 4, 4, 5, 7, 9}
int B[100] = {1, 1, 2, 1, 1, 1, 1, 2, 1, 1, 1}
double C[100] = {5.00, 4.00, 3.00, 4.50, 7.50, 6.00, 2.00, 2.00, 1.50, 5.00, 1.50}
double D[100] = {1.50, 3.00, 4.00, 3.00, 2.50, 0.50, 3.00, 3.00, 3.00, 1.00, 6.00}
So far I have this:
#include <stdio.h>
#inlcude <stdlib.h>
#define MAXSIZE 100
int main(int argc, char *argv[]) {
int i = 0;
int a, b;
double c, d;
int A[MAXSIZE], B[MAXSIZE];
double C[MAXSIZE], D[MAXSIZE]
while (scanf("%d %d %lf %lf", &a, &b, &c, &d) == 4) {
A[i] = a;
B[i] = b;
C[i] = c;
D[i] = d;
}
return 0;
}
My issue is how to do I store my columns of data in each array with the correct index? I also have been using input file redirection:
program.exe < txtfile.txt
This is because I want to be able to read any sort of text file with columns of data like the one above.
Bounty information, since it didn't look nice when i posted it:
Okay so I want to be able to see if the first column and second column have recurring digits at the same time. For example, in the first column, there are recurring '03' going down, and in the second column, there are recurring '01' going down. Both happen at the same stage, like this:
03 01
03 01
03 01
I want to be able to recongize that and if that is true, I want to be able to sum the doubles on the fifth column(far right). I want it to look like this:
01 01 5.00 1.50 7.50
02 01 4.00 3.00 12.00
02 02 3.00 4.00 12.00
03 01 4.50 3.00 ---
03 01 7.50 2.50 ---
03 01 6.00 0.50 35.25
04 01 2.00 3.00 6.00
04 02 2.00 3.00 6.00
05 01 1.50 3.00 4.50
07 01 5.00 1.00 5.00
09 01 1.50 6.00 9.00
other wise, I want the program to continue searching for the first/second column occurrence. A bit of extra background info, The first column is a room type, the second column is a room instance, and the fifth column is the total area of those rooms. This is why I want to sum the areas on the far right, because the room types are the same as the instances.
Not sure if I understood your question correctly but here's an idea:
#include <stdio.h>
#include <stdlib.h>
#define MAXSIZE 100
int main(int argc, char *argv[]) {
int i = 0;
int a, b;
double c, d;
int A[MAXSIZE], B[MAXSIZE];
double C[MAXSIZE], D[MAXSIZE];
int previousA=-1, previousB=-1;
double tempsum=0.0;
while (scanf("%d %d %lf %lf", &a, &b, &c, &d) == 4) {
A[i] = a;
B[i] = b;
C[i] = c;
D[i] = d;
if (previousA==A[i] && previousB==B[i]) { //to check for recurrent values
tempsum+=(C[i]*D[i]);
}
else {
//do whatever you want with the last stored tempsum value, which is the result of the multiplication of the C and D elements needed
tempsum=(C[i]*D[i]); //then tempsum is reset to the current multiplication
}
i++;
}
return 0;
}