Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Stringstream到字符串逻辑C++;_C++_Stringstream - Fatal编程技术网

C++ Stringstream到字符串逻辑C++;

C++ Stringstream到字符串逻辑C++;,c++,stringstream,C++,Stringstream,标题.h #include <iostream> #include <vector> class CombatLine{ std::stringstream Line; std::vector<std::string> TokenLine; void SetLine(std::string s){ Line<<s; } public: void SetTo

标题.h

#include <iostream>
#include <vector>

class CombatLine{   
    std::stringstream Line;    
    std::vector<std::string> TokenLine;  
    void SetLine(std::string s){   
        Line<<s;   
    }    
public:   
void SetTokenLine(){   
    int i=0;    
    while(i<5){   
        Line>>TokenLine[i];   
        i++;}      
    TokenLine.resize(i);   
    for(int j=0;j<5;j++)   
        cout<<TokenLine[j];} 
这会生成,但我得到这个运行时错误,
/cygdrive/C/Program Files/NetBeans 6.9.1/ide/bin/nativeexecution/dorun.sh:line 33:4500分段错误sh“$”

我知道这与我如何操作SetTokenFile中的字符串和流有关,但我似乎无法确定是什么


这是一个大项目的一小部分。总的来说,我将解析一个动态文本文件,然后对整个文件的内容进行比较。

您不能直接写入
TokenLine[I]
,因为它在
CombatLine
构造函数中初始化为空的
向量。如果在读取每一行时构建向量,则不需要调整大小

试试这个:

void SetTokenLine(){   
    int i=0;    
    string nextLine;
    while(i<5){   
        Line>>nextLine;
        TokenLine.push_back(nextLine);
        i++;}      
    for(int j=0;j<5;j++)   
        cout<<TokenLine[j];}

您不能直接写入
TokenLine[i]
,因为它在
CombatLine
构造函数中被初始化为空的
vector
。如果在读取每一行时构建向量,则不需要调整大小

试试这个:

void SetTokenLine(){   
    int i=0;    
    string nextLine;
    while(i<5){   
        Line>>nextLine;
        TokenLine.push_back(nextLine);
        i++;}      
    for(int j=0;j<5;j++)   
        cout<<TokenLine[j];}

您需要先调整令牌行的大小,然后写入内容,或者更好的习惯是使用push_-back,这将在必要时调整大小。

您需要先调整令牌行的大小,然后写入内容,或者更好的习惯是使用push_-back,如果需要,将调整大小。

在格式化代码时,请使用标记代码块而不是HTML;否则,在格式化代码时,请使用标记代码块而不是HTML;否则,像每个

CombatLine::CombatLine() : TokenLine(5)
{
}