için bir dize iletilmesiyle ifstream açık problemi ana kaynaktan başka bir işlevin bir dizesini geçirmeye çalışıyorum. Bu dize, sızması gereken bir metin dosyasının adıdır. Görebildiğim kadarıyla, dize tamamıyla geçiyorum, ama ben ifstream.open(textFileName)
kullanmayı denediğimde, oldukça işe yaramıyor. ama elle ifstream.open("foo.txt")
olarak kodladığımda, gayet iyi çalışıyor. i metin dosyası adının bir dizesinde geçmek mümkün olmak istiyorum bu yüzden C++: metin dosyası adı
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#ifndef DATA_H
#define DATA_H
#include "Data.h"
#endif
using namespace std;
vector<Data*> DataReader(string textFile);
DataReader
benim ana
#ifndef DATA_H
#define DATA_H
#include "Data.h"
#endif
#ifndef DATAREADER_H
#define DATAREADER_H
#include "DataReader.h"
#endif
using namespace std;
int main()
{
vector<Data*> database = DataReader("foo.txt");
return 0;
}
başlık var .. bu fonksiyonu birkaç kez kullanmanız gerekir
ve son olarak DataReader.cpp
#include "DataReader.h"
using namespace std;
vector<Data*> DataReader(string textFile)
{
ifstream aStream;
aStream.open(textFile); //line 11
i ifstream.open baktı() ve bir sürer string ve parametre olarak bir mod. gerçekten emin modları ne yapacağını, ama ben onları denedik ama onlar
DataReader.cpp: In function 'std::vector<Data*, std::allocator<Data*> > DataReader(std::string)':
DataReader.cpp:11: error: no matching function for call to 'std::basic_ifstream<char, std::char_traits<char> >::open(std::string&)'
/usr/local/lib/gcc/sparc-sun-solaris2.9/4.0.3/../../../../include/c++/4.0.3/fstream:495: note: candidates are: void std::basic_ifstream<_CharT, _Traits>::open(const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits<char>]
herhangi bir giriş/öneriler için şimdiden teşekkür ederim aynı hata mesajı verdi. Dekan
Parametrelerin anlamlarını görebilirsiniz. Eğer korumalarınızı * korumak için kullanacağınız başlıkları * koyarsanız, hayatınızda daha büyük başarılar bulacaksınız. Bir başlık dahilinde, her bir başlığın koruyucu sembolünün ismini bilmeniz gereken, koşullu olarak dahil etmek için dört satır değil, tek bir # # include satırında olması gerekir. Her başlığın ilk iki satırı '# ifndef' /' # define' olacak ve son satır '# endif' olacaktır. Gördüğünüz her * başlıktaki bu örnekleri görebilmeniz gerekir. –