Получение сообщения «Ошибка: ожидается идентификатор» на C ++ для & quot; == & quot;

Я получаю сообщение об ошибке «if (f_in); std :: ifstream == int NULL);» код, где «==» подчеркивается как ошибка и говорит «Ошибка: ожидается как идентификатор». Я не уверен, что делать, и я застрял: /. Вот код:

#include <iostream>     // For cin/cout
#include <fstream>      // For file stream objects (ifstream)
#include <string>       // For the string data object

using namespace std;

int main()
{

ifstream f_in;   // Creat an object for an 'input' file stream
string       data;   // An object to hold our data read in form the file)

f_in.open("InputData.txt");

if (f_in); std::ifstream == int NULL); {
fprintf(stderr, "Can't open input file in.list!\n");
exit(1);
}f_in >> data;
cout << "First data item from file is: ' " << data << endl;

f_in >> data;
cout << "Second data item from file is: ' " << data << endl;

getline(f_in, data);
cout << "Line from file is: '" << data << endl;

getline(f_in, data);
cout << "Next line from file is: '" << data << endl;

// We are finished with the file. We need to close it.
f_in.close();

cout << "Finished!\n";

return 0;
}

-8

Решение

if (f_in); std::ifstream == int NULL);

Вы можете переписать это так:

if (f_in)
;
std::ifstream == int NULL);

И вы можете видеть, что это не имеет смысла.

Может быть, вы имели в виду:

if (!f_in) {
fprintf(stderr, "Can't open input file in.list!\n");
exit(1);
}

Или же

if (f_in == NULL) {
fprintf(stderr, "Can't open input file in.list!\n");
exit(1);
}
0

Другие решения

Вы могли бы переписать утверждение как

if (f_in); // actually do nothing if the condition is true
std::ifstream == int NULL); { // starts like a variable declaration

вот почему компилятор ожидает идентификатор.
Затем у вас есть еще одна ожидающая ошибка с int NULL (тип значения).
Вы, вероятно, хотите написать что-то вроде:

if (f_in.is_open())

смотри ifstream ref: http://www.cplusplus.com/reference/fstream/ifstream/

0

По вопросам рекламы [email protected]