Tilted Forum Project - TFP - Sexuality, Philosophy and Political Discussion

Go Back   Tilted Forum Project - TFP - Sexuality, Philosophy and Political Discussion > Interests > Tilted Technology

Reply
 
LinkBack Thread Tools
Old 12-06-2004, 06:13 PM   #1 (permalink)
Rookie
 
Join Date: Sep 2004
[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 06:24 PM.
Rambo is offline   Reply With Quote
Old 12-06-2004, 07:22 PM   #2 (permalink)
a-j
Tilted
 
Join Date: Sep 2004
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 09:04 PM.
a-j is offline   Reply With Quote
Reply

Bookmarks

Tags
array, multidimensional, problem

Thread Tools

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
Forum Jump


All times are GMT -7. The time now is 12:49 PM.


Powered by vBulletin® Version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
All text (c) 2002-2008 Tilted Forum Project
"Insignia" vBulletin 3.5 - b6gm6n - x7x7x7.com