以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 编程心得 』   (http://bbs.xml.org.cn/list.asp?boardid=42)
----  [求助]c++高手帮忙看下这个程序问题出在哪儿!  (http://bbs.xml.org.cn/dispbbs.asp?boardid=42&rootid=&id=45422)


--  作者:teng_t1986
--  发布时间:4/14/2007 11:16:00 AM

--  [求助]c++高手帮忙看下这个程序问题出在哪儿!
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
    ifstream fin;
    fin.open("test.txt");
    vector<string> vec;
    int i=0;
    while(fin>>vec[i])
         i++;
    cout<<vec[1];
    fin.close();
    system("PAUSE");
    return EXIT_SUCCESS;
}

dev-c++和VC都不行……
vector不是可以动态分配内存空间的吗?



--  作者:zhang_tao
--  发布时间:5/3/2007 2:07:00 PM

--  
Exceptional C++ Style 中第一章有详细解释
--  作者:lqh02153
--  发布时间:9/11/2007 3:04:00 PM

--  
路过,不懂C++~~~~

--  作者:charloco
--  发布时间:9/20/2007 10:44:00 PM

--  
#include <vector>
#include <string>
#include <iostream.h>

void main()
{

    //Declaration for the string data
    std::string strData = "One";
    //Declaration for C++ vector
    std:: vector <std::string> str_Vector;
    str_Vector.push_back(strData);
    strData = "Two";
    str_Vector.push_back(strData);
    strData = "Three";
    str_Vector.push_back(strData);
    strData = "Four";
    str_Vector.push_back(strData);

}


--  作者:changxiaole
--  发布时间:6/3/2008 6:13:00 PM

--  
貌似应该这样用
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
    ifstream fin;
    fin.open("test.txt");
    vector<char> vec;
    int i=0;
 char a;
    while(fin>>a)
         vec.push_back(a);
 for( i=0;i<vec.size();i++)
    cout<<vec[i];
    fin.close();
    system("PAUSE");
    return EXIT_SUCCESS;
}


--  作者:zdqppp
--  发布时间:6/6/2008 8:19:00 PM

--  
路过,看看
--  作者:netjian
--  发布时间:6/20/2008 8:27:00 AM

--  
以下是引用teng_t1986在2007-4-14 11:16:00的发言:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
     ifstream fin;
     fin.open("test.txt");
     vector<string> vec;
     int i=0;
     while(fin>>vec[i])
          i++;
     cout<<vec[1];
     fin.close();
     system("PAUSE");
     return EXIT_SUCCESS;
}

dev-c++和VC都不行……
vector不是可以动态分配内存空间的吗?



问题在这一句: while(fin>>vec[i])
          i++;


对vec[i]赋值的时候,需要通过vec.push_back(xxx)来进行,而不是直接赋值。
访问的时候可以直接访问vec[i].


--  作者:liu_min
--  发布时间:11/14/2008 9:59:00 AM

--  
学习!
--  作者:elfstone
--  发布时间:11/27/2008 9:45:00 PM

--  
以下是引用teng_t1986在2007-4-14 11:16:00的发言:
#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;

int main(int argc, char *argv[])
{
     ifstream fin;
     fin.open("test.txt");
     vector<string> vec;
     int i=0;
     while(fin>>vec[i])
          i++;
     cout<<vec[1];
     fin.close();
     system("PAUSE");
     return EXIT_SUCCESS;
}

dev-c++和VC都不行……
vector不是可以动态分配内存空间的吗?



好老的贴呀,估计楼主都不记得这贴了。。。

vetor是动态分配内存的,但问题是vetor在定义的时候是没有分配的,如果分配已知大小可以通过resize完成,未知大小的可以通过push_back逐个加入来完成


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
74.219ms