首页 新闻 会员 周边

关于C++中getline函数

0
[已解决问题] 解决于 2015-09-19 09:00

getline( char_type *_Str,  streamsize _Count,  char_type _Delim )

第一个参数是字符缓冲区地址,第二个是缓冲区长度,第三个是分隔符(默认是回车)

在定义了ifstream finPos("INRIAPerson96X160PosList.txt")和

ImgName = "D:\\DataSet\\INRIAPerson\\INRIAPerson\\96X160H96\\Train\\pos\\" + ImgName;

之后,函数getline(finPos,ImgName)中finPos和ImgName分别是什么意思,很明显ImgName不是缓冲区长度啊?到底应该怎么理解,求高手指点

 

冬日恋尘的主页 冬日恋尘 | 菜鸟二级 | 园豆:206
提问于:2015-09-16 19:31
< >
分享
最佳答案
0

我想你是搞错了一个函数:你列出来的是:

在头文件<iostream>中声明了getline函数:

istream::getline
istream& getline (char* s, streamsize n );
istream& getline (char* s, streamsize n, char delim );   

但是C++中还定义了一个在std名字空间的全局函数,因为这个getline函数的参数使用了string字符串,所以声明在了<string>头文件中了,而你上面的真好用到的是这个

istream& getline ( istream& is, string& str, char delim );
istream& getline ( istream& is, string& str );

 

奖励园豆:5
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-09-17 16:02

那声明在了<string>头文件中的getline函数中每个参数代表什么意思呢?也就是istream& is,string& str

冬日恋尘 | 园豆:206 (菜鸟二级) | 2015-09-17 21:35

@冬日恋尘: string& str 写到istream& is

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-17 21:40

@稳稳的河: istream& is是个流

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-17 21:40

@稳稳的河: 你的意思是,在getline(finPos,ImgName)中,是将ImgName写到finPos这个文件中吗

冬日恋尘 | 园豆:206 (菜鸟二级) | 2015-09-17 21:53

@冬日恋尘: 是的,你可以自己也测试下

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-09-18 09:09

@稳稳的河: 能不能加一下你的QQ,我的是1849050003,如果可以的话加我

冬日恋尘 | 园豆:206 (菜鸟二级) | 2015-09-18 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册