1

这是一个真正的新手问题,但我的编译器给了我错误:

std::fstream has no member named getc

它是相对于这行代码:

char ch;

for ((ch=fpin.getc());!fpin.eof();(ch=fpin.getc()))

fpin 是一个文件,我检查了是否打开等。没关系。我也不担心代码的质量,只是担心让它工作。我一直盯着它看太久了,我看不出问题所在。

4

3 回答 3

4

您尝试调用的方法是std::fstream::get. 你可以在std::fstream 这里阅读。

于 2012-04-25T21:14:56.940 回答
3

好吧,编译器是对的,getc()不是ifstream. 以下是您的选择:

http://en.cppreference.com/w/cpp/io/basic_ifstream

通常

while(std::getline(myInStream, sstr)) 
{ 
    // ... 
} 

是你想要的。

于 2012-04-25T21:16:02.033 回答
2

djechlin 说了什么,但如果你确实想按字符获取,你可以这样做ch = fpin.get(),这将抓住一个字符。或者您可以fpin >> ch;获取单个字符但忽略空格。

于 2012-04-25T21:19:13.690 回答