output printing as hexadecmal... XD

Everything works except the calcem call for the totusold and totuprice. The out put shows up as hex. Im not positive but i think i might have to use PBV or PBR?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;

const int maxs = 50;

void initem(int id[], string name[], int usold[], double uprice[], 
			double totusales[], int totusold[], double totuprice[], 
			int &nums, int &nump)
{
  int i;
  for(i=0; i<maxs; i++) 
	{
      id[i] = 0;
	  usold[i] = 0;
	  uprice[i] = 0;
	  totusold[i] = 0;
	  totuprice[i] = 0;
	  totusales[i] = 0;
	  name[i] = "Brock Sampson";
	}
  nums = 0;
  nump = 0;
}
void printline(char ch, int nums, ofstream &outf)
{
  int i;
  outf << setw(3);
  for (i=1; i<nums; i++) outf << ch;
  outf << endl;
}
void printtitles1(ofstream &outf)
{
  outf <<setw(23)<< "My Little Store" << endl
	   <<setw(4) <<"ID"<<setw(6)<<"Name"<<setw(10)<<"Sold"<<setw(6)<<"Price"<<endl;
		 
  printline('-',32,outf);
}
void printtitles2(ofstream &outf)
{
  outf <<setw(4)<<"ID"<<setw(6)<<"Name"<<setw(10)<<"Sold"<<setw(6)
	   <<"Price"<<setw(7)<<"Total$"<<endl;
  printline('-',32,outf);
}
void numperrow()
{
  cout << "Numperrow Reached" << endl;
}
void readem(int id[], string name[], int usold[], double uprice[], int &nums, int &nump)
{
  int i;
  ifstream inf;
  inf.open("inf.dat");
  i=0;
  nump=0;
  nums = i;
  while(!inf.eof()) 
    {
	  inf >> id[i] >> name[i] >> usold[i] >> uprice[i];
	  i++;
	  nump++;
	}
}
void calcem(int usold[], double uprice[], double totusales[],
			int totusold[], double totuprice[], int &nums)
{
  int i;
  for(i=0; i<nums; i++)
    {
      totusales[i] = usold[i] * uprice[i];
	  totusold[i] = totusold[i] + usold[i] * 1;
	  totuprice[i] = totuprice[i] + uprice[i] * 1.00;
    }
}
void swapem(string &a, string &b)
{
  string temp;
  temp=a;
  a=b;
  b=temp;
}
void swapem(double &a, double &b)
{
  double temp;
  temp=a;
  a=b;
  b=temp;
}
void swapem(int &a, int &b)
{
  int temp;
  temp=a;
  a=b;
  b=temp;
}
void sortem( int id[], string name[], int usold[], double uprice[], int &nums)
{
  int i, j;
  for(j=0; j<nums-1; j++)
    for(i=0; i<nums-1; i++) 
	  if(name[i] > name[i+1])
	    {
		  swapem(name[i], name[i+1]);     
		  swapem(id[i], id[i+1]);
		  swapem(usold[i], usold[i+1]);
		  swapem(uprice[i], uprice[i+1]);
	    }
}
void printem1(int id[], string name[], int usold[], double uprice[], int &nums, ofstream &outf)
{
  int i;
  for(i=0; i<nums; i++)
    {
	  outf << "|" << setw(4) << id[i] <<" "<< setw(10) << left << name[i] << setw(4) << right 
		   << usold[i] << setw(6) << uprice[i] << setw(9) << "|" << endl;
	}
  printline('-',32,outf);
}
void printem2(int id[], string name[], int usold[], double uprice[], double totusales[], 
			  int totusold[], double totuprice[], int &nums, ofstream &outf)
{
  int i;
  for(i=0; i<nums; i++)
    {
	  outf << "|" << setw(4) << id[i] <<" "<< setw(10) << left << name[i] << setw(4) << right 
		   << usold[i] << setw(6) << uprice[i] << setw(7) << totusales[i] << " |" << endl;
	}
  printline('-',32,outf);
  outf << totusold << setw(10) << totuprice << endl;
}
void main()
{
  int id[maxs], usold[maxs], totusold[maxs]; 
  int nums, nump;
  double uprice[maxs], totusales[maxs], totuprice[maxs];
  string name[maxs];

  ofstream outf;
  outf.open ("outf.out");
  outf.setf(ios::fixed);
  outf.precision(2);
	
    readem (id, name, usold, uprice, nums, nump);
    printtitles1(outf);
    printem1(id, name, usold, uprice, nums, outf);
    sortem(id, name, usold, uprice, nums);
    calcem(usold, uprice, totusales, totusold, totuprice, nums);
    printtitles2(outf);
    printem2(id, name, usold, uprice, totusales, totusold, totuprice, nums, outf);
    numperrow();
    cout << nump << endl;
}
Last edited on
Use [code][/code] tags instead of [quoute][/quote] tags.

Also, use int main().

Anyway, the issue is that streams are printing out the pointers that are passed to your functions. When you pass an array to a function, you actually are just passing a pointer to the first element. Also, streams don't have any way to output an array for you, you need to use a for loop to print it yourself.
Topic archived. No new replies allowed.