免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5803 | 回复: 9
打印 上一主题 下一主题

C++函数调用时候传入的string 参数对象不成功 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-20 22:24 |只看该作者 |倒序浏览
代码如下:

std::istream & readTxtFile(std::istream &txt,string &tempStr){
  //  string temp ;
    while(!txt.eof()){
        getline(txt,tempStr);
        //cout << tempStr << endl ;  //这里输出有值,为文件内容。
    }
    txt.clear();
    return txt ;
}

   
int main()
{

    ifstream ifs("e:\\test2.txt");
    string str ="fff" ;
    readTxtFile(ifs,str);
    cout << str << endl;   //这里输出值为 “fff”
}  

有点不明白。为啥子这样没有能把 string对象传入到 readTxtFile()中。

[ 本帖最后由 iuingeng 于 2009-10-21 21:23 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-21 02:25 |只看该作者
你那里写了tempStr?

论坛徽章:
0
3 [报告]
发表于 2009-10-21 09:17 |只看该作者
hehe ,楼主今年贵庚哈?
(疑似老年痴呆,哈哈)

论坛徽章:
0
4 [报告]
发表于 2009-10-21 21:24 |只看该作者
原帖由 windyrobin 于 2009-10-21 09:17 发表
hehe ,楼主今年贵庚哈?
(疑似老年痴呆,哈哈)



实在不好意思。。。那个temp是我后来用来做测试的。。结果后来没换回来。现在修正了。。

论坛徽章:
0
5 [报告]
发表于 2009-10-21 21:26 |只看该作者

回复 #3 windyrobin 的帖子

后来做了修改。,没有改回来。。。现在修正到我说的情况了。

论坛徽章:
0
6 [报告]
发表于 2009-10-21 22:45 |只看该作者
注意循环结束时tempStr的状态,在退出循环后输出它看看结果就明白了

论坛徽章:
0
7 [报告]
发表于 2009-10-22 08:18 |只看该作者
但是为啥子tempstr不受影响呢。按照我平常的理解,传入一个string 对象str,str在这里的值应该可以被修改呀。再说在循环里面确实是被修改了吧?
没懂哈,指点下。

论坛徽章:
0
8 [报告]
发表于 2009-10-22 18:48 |只看该作者
原帖由 iuingeng 于 2009-10-22 08:18 发表
但是为啥子tempstr不受影响呢。按照我平常的理解,传入一个string 对象str,str在这里的值应该可以被修改呀。再说在循环里面确实是被修改了吧?
没懂哈,指点下。

把这行的注释去掉,把运行结果帖出来

  1. //cout << tempStr << endl ;  //这里输出有值,为文件内容。
复制代码

论坛徽章:
0
9 [报告]
发表于 2009-10-22 19:10 |只看该作者

找找readTxtFile函数的问题吧.

函数参数传引用的基础理论的是不会错的.

论坛徽章:
0
10 [报告]
发表于 2009-10-22 20:50 |只看该作者
我知道了,是eof()的原因。各位不要骂我。

[ 本帖最后由 iuingeng 于 2009-10-22 20:59 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP