| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 481 人关注过本帖
标题:帮忙研究下String的数据情况
只看楼主 加入收藏
瓦茨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-6-22
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
帮忙研究下String的数据情况
#include<string>
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
    ifstream in("Scopy.cpp");
    ofstream out("Scopy2.cpp");
    string s,line;
    //while(getline(in,line))
    while(getline(in,s))
    //    s+=line+"\n";
    s+=s;    这句用了之后为什么会生成空白的源文件?
       out<<s<<"\n";
 // out<<s<<"\n"<<s<<"\n";
        
//    cout<<s;
    return 0;
}
我想要的结果是能生成两个Scopy连在一起的情况。就像OUT 那么真白
搜索更多相关主题的帖子: include 源文件 
2011-09-01 23:21
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:1 
getline(in,s)???
2011-09-02 08:22
飞扬_佳
Rank: 2
等 级:论坛游民
帖 子:19
专家分:20
注 册:2011-4-14
收藏
得分:1 
getline(in,s)好像每次都覆盖了原来的值,最后应该是个结束符,而且你的输出不在循环内,
2011-09-02 14:09
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:8 
程序代码:
#include<string>
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
    ifstream in("Scopy.cpp");
    ofstream out("Scopy2.cpp");
    char s,line;//直接用char就行了
      while(in.get(s))
/*
       s+=line+"\n";这句用了之后为什么会生成空白的源文件?
     getline函数只有2种原型:istream &getline(char *buffer,streamsize num);istream &getline(char *buffer,streamsize num,char delim);
     getline只接受char 型变量,string s s是个对象,就算强制转换为char也不行.你的程序为什么通不过我想不用我再解释了吧?
*/
       out<<s;
       return 0;
}
//看看输出结果是不是复制成功了
//写文件推荐用二进制


[ 本帖最后由 xg5699 于 2011-9-3 11:16 编辑 ]

都不结贴我郁闷那!
2011-09-02 21:05
cnwppp
Rank: 2
等 级:论坛游民
帖 子:18
专家分:19
注 册:2011-8-4
收藏
得分:1 
s+=s;这语句重复执行,始终覆盖之前的s的值,直到最后,读文件结束,s==NULL。
2011-09-02 22:29
cnwppp
Rank: 2
等 级:论坛游民
帖 子:18
专家分:19
注 册:2011-8-4
收藏
得分:8 
#include <string>
#include <fstream>
#include <iostream>

using namespace std;

int main()
{
    ifstream in("main.cpp");
    ofstream out("main1.cpp");
    string s,line;
    while(getline(in,s))
    {
        s+=s;
        out<<s<<endl;
    }
    out<<s<<"\n";//此处测试最后s的值。
    return 0;
}
2011-09-02 22:31
lucky563591
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:4
帖 子:765
专家分:2103
注 册:2009-11-18
收藏
得分:1 
string是组合数据类型吧
2011-09-03 08:56
xg5699
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:140
专家分:522
注 册:2011-7-27
收藏
得分:0 
回复 7楼 lucky563591
口误`

都不结贴我郁闷那!
2011-09-03 11:15
瓦茨
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-6-22
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

我想要的结果其实是这样的,不过感觉用下面的代码有点笨:
程序代码:
#include<string>
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
    ifstream in("Scopy2.cpp");
    ofstream out("Scopy3.cpp");
    string s,line;
    while(getline(in,line))
    //while(getline(in,s))
        s+=line+"\n";
   // s+=s;    这句用了之后为什么会生成空白的源文件?
   //    out<<s<<"\n";
    cout<<s<<"\n"<<s<<"\n";
        
//    cout<<s;
    return 0;
}
2011-09-04 23:08
快速回复:帮忙研究下String的数据情况
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017615 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved