Ошибка с2664(не удается преобразовать аргумент n из type1 в type2) в 18 строке - C (СИ) (147703)
Формулировка задачи:
Где накосячил, подскажите пожалуйста!
#include <iostream>
#include <fstream>
#include <string>
#define MAXFILENAME 20
#define MAXBUF 1024
#pragma warning(disable : 4996)
using namespace std;
void openfile(FILE *);
//int search();
int main(void)
{
int amountLines = 0, fileLength = 0;
char firstSimbol;
char buf[MAXBUF];
FILE *fp;
[U][B]openfile(&fp)[/B][/U];
while (!feof(fp))
{
buf[0] = '\0';
fgets(buf, sizeof(buf), fp);
fileLength = strlen(buf);
if (fileLength > 0)
{
if (buf[fileLength - 1] == '\n')
{
buf[fileLength - 1] = '\0';
fileLength--;
}
if (fileLength > 0)
{
if (buf[0] == buf[fileLength - 1])
amountLines++;
}
}
}
cout << "In the file " << amountLines << " string(s) that begin and end with the same character" << endl;
system("pause");
return 0;
}
void openfile(FILE **fp)
{
char filename[MAXFILENAME];
cout << "Enter the name of file(example: name.txt): " << endl;
cin >> filename;
*fp = fopen(filename, "r");
if (!fp)
{
cout << "Error file" << endl;
exit(1);
}
}Решение задачи: «Ошибка с2664(не удается преобразовать аргумент n из type1 в type2) в 18 строке»
textual
Листинг программы
*fp = fopen(filename, "r");
if (!fp)
{
cout << "Error file" << endl;
exit(1);
}
Объяснение кода листинга программы
- Открывается файл с помощью функции fopen.
- Проверяется успешность открытия файла.
- Если файл не открылся, выводится сообщение об ошибке и программа завершается.