| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 561 人关注过本帖
标题:两段如此相似的代码,结果却完全不一样
取消只看楼主 加入收藏
小菜B
Rank: 2
等 级:论坛游民
帖 子:29
专家分:25
注 册:2013-3-6
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
两段如此相似的代码,结果却完全不一样
这两段代码都是重"123.txt"中读取数据存入一个二维向量中,并打印在显示屏上
代码一:
//文件读取与排序
#include<iostream>
#include<fstream>
#include<vector>
#include<sstream>
//===========
int main(){
    std::ifstream fin("123.txt");
std::string str;                 //请注意这一行string str在for外
std::istringstream sin(str);
    std::vector<std::vector<int> > a;
    for(;std::getline(fin,str);){
    std::vector<int> b;   
        for(int item;sin>>item;)
        b.push_back(item);
        a.push_back(b);}
            for(int m=0;m<a.size();++m)
                for(int n=0;n<a[m].size();++n)
                    std::cout<<a[m][n];
}
代码二:
//文件读取与排序
#include<iostream>
#include<fstream>
#include<vector>
#include<sstream>
//===========
int main(){
    std::ifstream fin("123.txt");
    std::vector<std::vector<int> > a;
    for(std::string str;std::getline(fin,str);){     //在代码二中,定义的string  str在for中
    std::vector<int> b;
    std::istringstream sin(str);
    for(int item;sin>>item;)
        b.push_back(item);
        a.push_back(b);
        }
for(int i=0;i<a.size();++i)
for(int k=0;k<a[i].size();++k)
std::cout<<a[i][k];
}
结果代码二能够完成任务,代码一虽然能通过编译和连接却得不到正确的结果。这是为什么?
123.tet  如下
24 356 65 36 455 365
15 35 645 65 356 24
12 54 52
145 25
1
搜索更多相关主题的帖子: vector include 
2013-03-29 23:36
小菜B
Rank: 2
等 级:论坛游民
帖 子:29
专家分:25
注 册:2013-3-6
收藏
得分:0 
回复 2楼 Susake
可是放在循环体外怎么会错了呢
2013-03-31 09:07
快速回复:两段如此相似的代码,结果却完全不一样
数据加载中...
 
   



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

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