Tilted Forum Project Discussion Community  

Go Back   Tilted Forum Project Discussion Community > Interests > Tilted Technology


 
 
LinkBack Thread Tools
Old 12-06-2004, 05:13 PM   #1 (permalink)
Upright
 
[C++] Multidimensional array problem

I'm using fstream in Visual C++ to read a maze from a text file into a multidimensional array and output it to another text file. I keep running into a problem somewhere along the line because the output is missing lines of the maze and gives me a bunch of weird characters.

This is my code for reading in and outputting:
void read(int &x, int &y, char path[100][100])
{
string filein, fileout;
int l;

cout << "Enter filename: ";
cin >> filein;

l=0;
while(filein[l] != '.')
{
fileout += filein[l];
l++;
}
fileout += "_path.txt";
mazein.open(filein.c_str());
mazeout.open(fileout.c_str());

mazein >> x >> y;

for(int a = 0; a <= y; a++)
{
for(int b = 0; b < x; b++)
{
mazein.get(path[b][a]);
}
mazein.get();
}
}

void print(int x, int y, char path[100][100])
{
for(int a = 0; a <= y; a++)
{
for(int b = 0; b < x+1; b++)
{
if(path[b][a] == 'X')
{
path[b][a] = ' ';
}
mazeout << path[b][a];
}
}
}

Any thoughts?

Last edited by Rambo; 12-06-2004 at 05:24 PM..
Rambo is offline  
Old 12-06-2004, 06:22 PM   #2 (permalink)
a-j
Tilted
 
Just off the top of my head, I would guess that you're not reading the input file correctly, and end up reading CR/LF characters. You start by using the stream extraction operator >> to read x and y (which I assume is the dimension of the array). Couldn't you do the same thing to read the maze data. If part of the data consists of spaces, it may be a little trickier, but probably possible if you take a look at the ifstream docs. I suspect you are not getting past the end of lines (which are actually two bytes on windows). Also check for unnecessary whitespace.

Also
when you combine for styles it becomes hard to read please stick to one style or the other. I prefer this one, and I'm sure it's the more common:
Code:
for (int i = 0; i < x; i++)
rather than this one
Code:
for (int i = 0; i <= x+1; i++)
Edit:
Look at your loops, there is inconsistency in the number of times you are looping, and I think only the 2nd loop is correct (loops x times).

Code:
for(int a = 0; a <= y; a++) {    // loops y+1 times
    for(int b = 0; b < x; b++) {    // loops x times
...
for(int a = 0; a <= y; a++) {    // loops y+1 times
    for(int b = 0; b < x+1; b++) {    // loops x+1 times

Last edited by a-j; 12-06-2004 at 08:04 PM..
a-j is offline  
 

Tags
array, multidimensional, problem


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT -8. The time now is 12:40 AM.

Tilted Forum Project

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Search Engine Optimization by vBSEO 3.6.0 PL2
© 2002-2012 Tilted Forum Project

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