C++ Gurus please help me :(

Viper Frag

Golden Member
Nov 22, 1999
1,000
4
81
Ok I'm trying to read from text files but for some reason Visual C++ gives me a weird error. This is what I have so far.

#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>

void outputLine(int, const char * const, double);

int main()
{
char filename[20];
cout << &quot;Please input the filename ------>&quot;;
cin >> filename;

ifstream inDataFile(filename, ios::in);

if( !inDataFile )
{
cerr << &quot;File coud not be found\n&quot;;
exit (1);
}

char * data[20];

cout << data;

return 0;
}

I also tried a separate program but it still would not work. Which is the following:

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <iomanip.h>
#include <fstream.h>

int main()
{
char * token[20];
int index;
char * bufferptr;
char buffer[90];
char filename[25];
ifstream datafile;
cout << &quot;Enter Filename ------>&quot;;
scanf(&quot;%s&quot;,filename);
datafile.open(filename,ios::in);
if(datafile.fail())
datafile.get(buffer,90);
datafile.ignore(80,'\n');
bufferptr = strtok(NULL,&quot;,&quot;);
index = -1;
while(*bufferptr!='\0')
{
index = index + 1;
token[index] = bufferptr;
bufferptr = strtok(NULL,&quot;,&quot;);
}
return 0;
}

Any help will be greatlty appreciated.

Thanks,
Viper-Frag

 

GreenBeret

Golden Member
May 16, 2000
1,796
0
0
what does scanf do? It seems like filename is being sent there without being given a value.
 

Pretender

Banned
Mar 14, 2000
7,192
0
0
If you give us the error and tell us what line it corresponds to in the code, it'd be 10x easier to solve this problem.
 

Pretender

Banned
Mar 14, 2000
7,192
0
0
In the first program, this could be one problem:

char * data[20];
cout << data;


Are you sure about that asterisk (*) there? I don't think it belongs...

------------------

In the second one, this line:
scanf(&quot;%s&quot;,filename); should actually be
scanf(&quot;%s&quot;,&amp;filename);...when using scanf, you want to call it using the address

after that, your code gets strange:

if(datafile.fail()) I don't think fail() is a member of ifstream, but I could be wrong
datafile.get(buffer,90); I don't know what fail is, but are you sure you want to be using get() after it failed?

Now that I think about it, post the errors and we'll try to work on it again.