Не могли бы вы помочь мне найти, что такое ошибка с этой 2 строкой, которую я взял из приведенной ниже строки. Поскольку я новичок в C++, мне нужны ваши люди помощи. Кроме того, как изменить этот код на C++, потому что я привык к языку программирования Си, а неНужна помощь в коде C++
C++fgets (линия, 80, в)
ошибка: назад (в); rows = countLines (in);
Код:
int container:: countLines(ifstream in)
{
int count = 0;
char line[80];
if (in.good())
{
while (!in.eof())
if (in>>line) count++;
rewind(in);
}
return count;
}
// opens the file and stores the strings
//
// input: string of passenger data
// container to store strings
//
int container:: processFile(char* fn)
{
char line[80];
ifstream in ;
in.open(fn);
int count = 0;
if (!in.fail())
{
rows = countLines(in);
strings = new char* [rows];
while (!in.eof())
{
if (in>>line)
{
strings[count] =new char [strlen(line)+1];
strcpy(strings[count],line);
count++;
}
}
}
else
{
//printf("Unable to open file %s\n",fn);
//cout<<"Unable to open file "<<fn<<endl;
exit(0);
}
in.close();
return count;
}
Очевидно, что вы используете C++, потому что используете оператор пространства имен – turnt
Смотрите здесь (http://en.cppreference.com/w/cpp/io/c/rewind). Rewind - это C-функция, которая работает с FILE, но вы пытаетесь перемотать поток C++. – Vincent
['while (! Eof())' неверно.] (Http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – chris