我有这个程序:
#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&)=删除;
为什么?