Solved

C++ Help

Posted on 2006-10-20
5
270 Views
Last Modified: 2008-02-01
heres the code im having problems with:



inputfile.open(source.c_str());                        //Opens file

 char tmpC;
 tmpC=/;
 char tmpchar1;
 char tmpchar2;
 counter=0;
    while (! inputfile.eof() )

    {

      counter++;

      tmpchar1=getchar(inputfile);
      if (tmpchar1 == tmpC)                                    //checks if file is open

      {
     
cout << "found a comment";
      }

    }

    inputfile.close();                                          //Closes input file

 



heres the errors im getting:

sr4 $ CC -o Program06 Program06.cpp
"Program06.cpp", line 54: Error: Badly formed expression.
"Program06.cpp", line 61: Error: Too many arguments in call to "std::getchar()".
"Program06.cpp", line 61: Warning: A non-POD object of type "std::ifstream " passed as a variable argument to function "std::getchar()".
"Program06.cpp", line 62: Warning: The variable tmpC has not yet been assigned a value.
"Program06.cpp", line 64: Error: "}" expected instead of "tmpC".
3 Error(s) and 2 Warning(s) detected.

Can anyone help me out here?
0
Comment
Question by:xneo27
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
5 Comments
 

Author Comment

by:xneo27
ID: 17777815
Updating my issue:
Heres the code:


inputfile.open(source.c_str());                        //Opens file

 char tmpC;
 char tmpchar1;
 char tmpchar2;
 counter=0;
    while (! inputfile.eof() )

    {

      counter++;

      getline (inputfile,line);
      tmpchar1=line[counter];
      if (tmpchar1 == '/')                                    //checks if file is open

      {
     
cout << "found a comment";
      }

    }

    inputfile.close();


Here is the error:

sr4 $ CC -o Program06 Program06.cpp
"Program06.cpp", line 64: Error: "}" expected instead of "tmpchar1".
1 Error(s) detected.
0
 
LVL 8

Expert Comment

by:bramsquad
ID: 17777900
i dont know why its giving you that error (in the second post) but it looks like getline() doesnt have that overload.

getline() works like this:

istream& getline (char* s, streamsize n );

where s is your character array, and n is the maximum number of characters to read.

also, getline() is a function of the class istream, so you need to do it something like this

char line[256];
inputfile.getline(line, 256);

also, taking a look at your code, it looks like your logic says you want to take the Nth character in the Nth line, meaning if your text file was

run
bob
run

tempchr1 would be

'r' in the first iteration
'o' in the second
'n' in the third

if thats what you want, thats cool, just looked kinda fishy

fool around with what i said, let me know if you have any more questions

~b

0
 

Author Comment

by:xneo27
ID: 17777931
Well here is what im trying to do and lets see if you know a better way.
Im trying to read a file char by char and count how many time "/*" or "//" show up.
What do you think?
0
 
LVL 6

Accepted Solution

by:
0xC0DEB07 earned 500 total points
ID: 17778508
Hi xneo27

Using C style char arrays with C++ is absolutely unnecessary!
Here is how to do it with std::string:


    ifstream ifs;
     std::string str;
     unsigned count=0;
     ifs.open ("source.cpp");
     
     
     while(std::getline(ifs, str) ){// reads each line until the EOF
                             
          std::cout << str << std::endl;
          if(std::string::npos!=str.find("/*", 0) || std::string::npos!=str.find("//", 0) ) // seeks for /* and // in each line
             ++count;
     }
     
     cout << count << endl;
     ifs.close();
0
 

Author Comment

by:xneo27
ID: 17796529
Thank you
0

Featured Post

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This is an explanation of a simple data model to help parse a JSON feed
Computer science students often experience many of the same frustrations when going through their engineering courses. This article presents seven tips I found useful when completing a bachelors and masters degree in computing which I believe may he…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …

751 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question