如何将iStRAMM传递给C++中的函数?

如何将iStRAMM传递给C++中的函数?,c++,arguments,C++,Arguments,编辑:我在一次提交中更改了代码的多个部分,但没有意识到这一点,这导致了注释中的许多混乱 现在我可以看到问题是什么:如何将iStRAMM传递给C++中的函数? 例如: int ncharf() { char neww; myfile.get(neww); return (int)neww; } 其中myfile是一个istream您忘记将myfile作为参数传递 int ncharf(istream &myfile) { char neww; my

编辑:我在一次提交中更改了代码的多个部分,但没有意识到这一点,这导致了注释中的许多混乱

现在我可以看到问题是什么:如何将iStRAMM传递给C++中的函数? 例如:

int ncharf()
{
    char neww;
    myfile.get(neww);
    return (int)neww;
}
其中myfile是一个istream

您忘记将myfile作为参数传递

int ncharf(istream &myfile)
{
    char neww;
    myfile.get(neww);
    return (int)neww;
}
此外,如评论所述:

如果要从二进制文件中读取int,应改用:


myfile可能是一个全局变量,不需要传递。@ThomasMatthews查看OP得到的错误消息。它抱怨.get没有应用于类对象。如果我想以二进制模式从文件中读取int,我需要在get方法中指定int的大小,否则它只读取一个字符。例如:myfile.getchar*&new,sizeofint.get读取char和c-strings not int,如果默认情况下遇到定界字符“\n”,它将停止读取。
int ncharf(istream &myfile)
{
    int neww;
    myfile.read((char*)&neww, sizeof(int));
    return neww;
}