Member 13479017 Ответов: 2

Нет соответствующей функции для вызова...


Я получаю эту конкретную ошибку для этой конкретной части моего кода. Есть еще два места, но я думаю, что если я смогу решить одно, то смогу решить и другие. Эта ошибка относится к этой части кода, "ins.open(fileName.c_str()) ;"

void openInfile (ifstream& ins)
{
	string fileName = " " ;
	ofstream outs ;		// outs is an output stream
	cout << "Enter file of madlibs outline." << endl ;
	cin >> fileName ;
	ins.open(fileName.c_str()) ;		//connects ins to file inFile
	if (ins.fail (fileName.c_str()))
	{
		cerr << "Error: Unable to open file : FILENAME" << endl ;
	}
	else
	{
		openOutfile (outs) ;
	}
}


Что я уже пробовал:

Я просил многих людей помочь мне и исследовал множество подобных вопросов, но до сих пор не могу найти ничего, что помогло бы мне.

2 Ответов

Рейтинг:
2

CPallini

Изменение от

Цитата:
если (Син.плохо (именем.c_str()))
К
if ( ins.fail() )


Member 13479017

Спасибо, но это все равно не работает.

CPallini

Он компилируется? Если он не компилируется: каково (точное) сообщение об ошибке?

Member 13479017

Итак, с этой конкретной строкой кода сообщение об ошибке гласит::

prog5B.cpp: в функции ‘void openInfile(std::ifstream)’:
prog5B.cpp:50: ошибка: не удалось преобразовать ‘ins.std::basic_ios<_CharT, _Traits>: fail [with _CharT = char, _Traits = std::char_traits<char>]’ В ‘bool’

CPallini

обратите внимание на количество круглых брекетов, это
если ( ins.fail() )

Рейтинг:
11

Peter_in_2780

Ваша проблема заключается в

if (ins.fail (fileName.c_str()))
Вам просто нужно
if (ins.fail)
и вы, вероятно, захотите измениться
cerr << "Error: Unable to open file : FILENAME" << endl ;
к чему-то вроде
cerr << "Error: Unable to open file : " << filename.c_str() << endl ;


CPallini

Привет Питер, потерпеть неудачу являться методом.

Peter_in_2780

Ой! Мой окаменевший мозг. Спасибо за поправку, Карло.

Member 13479017

Спасибо. Я изменил его, но он все еще не работает. Теперь ошибка в этом месте изменилась с "нет совпадающей функции для вызова" на "не удалось преобразовать"