zliczanie z dowolnego pliku

0

Koledzy i Koleżanki,
mam prosty program zliczający linie w pliku. Jedak muszę na potrzeby większego projektu go udoskonalić czyli użytkownik sam podaje nazwę pliku z jakiego ma zliczać. Ale kurde nie kompiluje:( proszę o pomoc, pozdro


#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>
#include <vector>
#include <string>

using namespace std;
//{

int zlicz(string filename)
{

int licznik =0;

vector<string> v;


ifstream file( const string * filename);
string line;

while(getline(file,line)) //Funkcja getline - odczytuje po kolei wersy pliku tekstowego.
v.push_back(line);

for(int i=0;i<v.size();i++)
{
licznik++;
}

getch();
return licznik;

}

int main()
{

string filename;
cout << "put name of file" << endl;
cin >> filename;
cout << zlicz(filename) << endl;

return 0;

}

0
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <conio.h>
#include <vector>
#include <string>


 using namespace std;
 //{

 int zlicz(string filename)
 {


     int licznik =0;

     vector<string> v;


     ifstream file(filename.c_str());
     char line [256];

     while(file.getline(line,256)) //Funkcja getline - odczytuje po kolei wersy pliku tekstowego.
     v.push_back(line);

     for(int i=0;i<v.size();i++)
     {
     licznik++;
     }

     getch();
     return licznik;
 }




 int main()
 {

     string filename;
     cout << "put name of file" << endl;
     cin >> filename;
     cout << zlicz(filename) << endl;

     return 0;
 }
 
0

A czemu nie kompiluje?

prog.cpp error: expected constructor, destructor, or type conversion before ‘<’ token
prog.cpp error: ‘string’ was not declared in this scope
prog.cpp error: expected ‘,’ or ‘;’ before ‘{’ token

0

no niestety zmiana nie pomogła :(

0

http://www.cplusplus.com/reference/string/getline/
Nie mówiąc już o tym, że ja np. nie mam takiego katalogu "conio.h"

Nawet nie wiem co to robi.. i nie obchodzi mnie to ani troszeczkę..

#include <iostream>
#include <fstream>
#include <vector>
#include <string>
 using namespace std;
 int zlicz(string filename){
     int licznik =0;
     vector<string> v;
     ifstream file(filename.c_str());
     char line [256];
     while(file.getline(line,256))
     v.push_back(line);
     for(int i=0;i<v.size();i++)
        licznik++;
     return licznik;
 }
 int main(){
     string filename;
     cout << "put name of file" << endl;
     cin >> filename;
     cout << zlicz(filename) << endl;
     return 0;
 }
0

Jednego nie kumam po co w tym programie vector i string?

#include <iostream>
#include <fstream>
using namespace std;

int zlicz(const char *filename)
  {
   ifstream file(filename);
   int licznik=0,ch;
   bool r=true;
   while((ch=file.get())!=EOF)
     {
      r=(ch=='\n');
      if(r) ++licznik;
     }
   return licznik+!r;
  }

int main()
  {
   char filename[1024];
   cout<<"put name of file: ";
   cin.getline(filename,sizeof(filename));
   cout<<zlicz(filename)<<endl;
   return 0;
  }

Oprócz tego jeżeli już chcecie koniecznie gromadzić wczytane wiersze (np dla późniejszej rozbudowy programu) to wiersze:

     int licznik =0;
     for(int i=0;i<v.size();i++)
        licznik++;
     return licznik;

Można śmiało wywalić i zamienić na:

     return v.size();

1 użytkowników online, w tym zalogowanych: 0, gości: 1