你能幫我找到什麼是我從下面的線,這2行錯誤。由於我是C++中的新手,我需要你的幫助人員。此外,如何將這個代碼更改爲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)。倒回是一個C函數,它對FILE進行操作,但是你試圖倒回一個C++流。 – Vincent
['while(!eof())'wrong。](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-wrong) – chris