2016-06-04 14 views
0

Mein Code kompiliert aber aus irgendeinem Grunde ist es ein Fehler, die aufkommt: geworfen wirdHaving Problem mit Datei-Eingabe in meinem C++ Programm

Error:Multiple markers at this line - Invalid arguments ' Candidates are: void open(const char *, enum std::_Ios_Openmode) ' - no 
matching function for call to 'std::basic_ifstream::open(std::__cxx11::string&)' 

Ich kann nicht scheinen, um herauszufinden, warum dieser Fehler.

Hier ist mein Code:

#include <iostream> 
    #include <fstream> 
    #include <string> 
    using namespace std; 
    int main(){ 
    int array_for_numbs[10]; 
    int numbers[9]={1,2,3,4,5,6,7,8,9}; 
    int counttarr[9]={0}; 
     ifstream fileinpt; 
     int num, dgt; 
     string txtfile; 
     cout<<"enter the test file:"; 
     cin >> txtfile; 
     fileinpt.open(txtfile);// this line is where the error pops up :(
      int i=0; 
while (!fileinpt.eof()) 
{ 
     fileinpt >> array_for_numbs[i]; 
     i=i+1; 
} 
fileinpt.close(); 
for(int i = 0; i < 10; i++) 
{ 
     num=array_for_numbs[i]; 
     do 
     { 
      dgt=num%10; 
      num=num/10; 
     }while(num>0); 
    for(int i = 0; i < 9; i++) 
    { 
      if(dgt==numbers[i]) 
      { 
       counttarr[i]=counttarr[i]+1; 
      } 
     } 
    } 
    cout<<"Digit \t"<< "Count \t"<<"Frequency "<<endl; 
    for(int i = 0; i < 9; i++) 
{ 
     float frq=(float)counttarr[i]/(float)100; 
     cout<<(i+1)<<"\t"<< counttarr[i]<<"\t" <<frq<<endl; 
} 
system("pause"); 
return 0; 
} 

Antwort

1

"open" -Funktion Dateiname Argument char * Datentyp, aber Sie versuchen, std :: string-Typ Pfad zu übergeben. Die offene Funktion ist eine C-Funktion, die den std :: string-Typ nicht kennt.

Sie haben zu werfen/convert std :: string * auf char

Verwendung;

fileinpt.open(txtfile.c_str());