重新运行程序和字符串流?

问题描述 投票:0回答:1

我有这个程序:

#include <iostream>
#include <vector>
#include <math.h>
#include <cstdlib>
#include <iomanip>  
#include <sstream>

using namespace std;




void ProvaErrore() {

    string line, line1;
    char delim = ' ';
    ifstream myfile("DatiMemoria.txt");
    int i = 0, j = 0;
    vector<vector<double>> vettore(40);
    vector<double> risultato;

    while (getline(myfile, line1))
    {
        stringstream ss(line1);
        while (getline(ss, line, delim))
        {
            if (j == 12)
            {
                i++;
                j = 0;
            }
            if (j == 0)
            {
                if (line == 'p')
                {
                    risultato.push_back(0);
                }
                else
                {
                    risultato.push_back(1);
                }
            }
            if (j == 1)
            {
                if (line == 'x')
                {
                    vettore[i].push_back(0);
                }
                else
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 2)
            {
                if (line == 's')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(0);
                }
                if (line == 'y')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(1);
                }
                if (line == 'f')
                {
                    vettore[i].push_back(1);
                    vettore[i].push_back(0);
                }
            }
            if (j == 3)
            {
                if (line == 'w')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'n')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 4)
            {
                if (line == 't')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'f')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 5)
            {
                if (line == 'l')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(0);
                }
                if (line == 'p')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(1);
                }
                if (line == 'n')
                {
                    vettore[i].push_back(1);
                    vettore[i].push_back(0);
                }
                if (line == 'a')
                {
                    vettore[i].push_back(1);
                    vettore[i].push_back(1);
                }
            }
            if (j == 6)
            {
                if (line == 'b')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'n')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 7)
            {
                if (line == 'k')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(0);
                }
                if (line == 'w')
                {
                    vettore[i].push_back(0);
                    vettore[i].push_back(1);
                }
                if (line == 'n')
                {
                    vettore[i].push_back(1);
                    vettore[i].push_back(0);
                }
                if (line == 'p')
                {
                    vettore[i].push_back(1);
                    vettore[i].push_back(1);
                }
            }
            if (j == 8)
            {
                if (line == 'c')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'e')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 9)
            {
                if (line == 'k')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'n')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 10)
            {
                if (line == 's')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'v')
                {
                    vettore[i].push_back(1);
                }
            }
            if (j == 11)
            {
                if (line == 'g')
                {
                    vettore[i].push_back(0);
                }
                if (line == 'u')
                {
                    vettore[i].push_back(1);
                }
            }
            j++;

        }
    }
    for (int i = 0; i < 40; i++)
    {
        for (int j = 0; j < 14; j++)
        {
            cout << vettore[i][j]<<" ";
        }
        cout << "\n";
    }

}

带有该txt文件:

e x y w t a b n c n s g
p x s w t p n k e k s g
p x y n t p n k e n v u
p x y w t p n w e k s g
p x s w t p n n e n s g
p x y w t p n w e n s g
p x y w t p n k e n s g
p x y w t p n k e k s g
p x y n t p n p e k v u
e f f n f n n p e n v u
p f y n t p n k e k v u
p x s w t p n w e n s g
p f y n t p n k c n v u
p x y n t p n n e n v u
p x s w t p n k e n s g
p f s n t p n p e k v u
p x y n t p n p e n v u
p x y w t p n n e k s g
p x y n t p n k e k v u
e x f n f n n n e k v u
e x s w t l b k c k s g
e x f n f n n k e n v u
e x y w t l b w c k s g
p f y n t p n p e n v u
e x s w t l b n c n s g
e x y w t a b w c n s g
e x y w t a b k c n s g
e x y w t l b k c k s g
e x f n f n n p e k v u
p x y n t p n n e k v u
e f f n f n n k e k v u
e x s w t l b w c n s g
e f f n f n n k e n v u
e x f n f n n n e n v u
e x s w t a b k c n s g
e f f n f n n p e k v u
e x f n f n n p e n v u
e x y w t l b n c k s g
e x f n f n n k e k v u
p x y w t p n n e n s g

这是一个简单的程序,可读取txt文件的行并将其转换并放入向量中。

当我第一次运行它时,一切都很好。但是,如果我尝试重新运行它,则会出现此错误:

错误:没有匹配的构造函数来初始化'std :: stringstream'(aka'basic_stringstream,分配器>')stringstream ss(line1);^ ~~~~~C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ VC \ Tools \ MSVC \ 14.20.27508 \ include \ sstream:531:14:注意:候选构造函数不可行:未知的'std ::转换字符串”(又称“ basic_string”,分配器>')到'ios_base :: openmode'(aka'int')作为第一个参数显式basic_stringstream(ios_base :: openmode _Mode = ios_base :: in | ios_base :: out)^C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ VC \ Tools \ MSVC \ 14.20.27508 \ include \ sstream:539:5:注意:候选构造函数不可行:没有从'std ::的已知转换字符串”(又称“ basic_string”,分配器>')到'std :: basic_stringstream,std :: allocator>'第一次论点basic_stringstream(basic_stringstream && _Right):_Mybase(&_ Stringbuffer){//通过移动_Right构造^C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Community \ VC \ Tools \ MSVC \ 14.20.27508 \ include \ sstream:562:5:注意:候选构造函数不可行:'std ::没有已知转换字符串”(又称“ basic_string”,分配器>')为'const std :: basic_stringstream,std :: allocator>'为第一论点basic_stringstream(const basic_stringstream&)=删除;

为什么?

c++ stringstream
1个回答
0
投票

看来您只是忘记了

#include <sstream>

[C0的标题]


也,您std::stringstream

© www.soinside.com 2019 - 2024. All rights reserved.