не могу прочитать правильные значения вектора, полученного из файла

Я пытаюсь прочитать текстовый файл построчно, а затем прочитать каждый столбец как вектор, но когда я пытаюсь нацелиться на первый столбец, он показывает нули, то есть неправильно читает файл.

int main(void)
{ifstream myfile ("data1.txt");
string line;if (myfile.is_open())
{

int ln=1;

while ( getline (myfile,line) )
{
if(ln==1){ln++; continue;}
istringstream iss(line);
string word;
vector<double> column;
int w=1;
while(iss >> word)
{

//double dw=atof(Form("%s",word));
column.push_back(atof(Form("%s",word)));
cout<<column[0];

w++;}

ln++;
cout<<"\n";
}
myfile.close();
}
//else
else cout<<"Unable to open file";
cout<<"\n";
return ;
}enter code here

-1

Решение

push_back добавляет элемент как последний элемент вектора, в то время как columns[0] всегда относится к первому элементу вектора.

Это первый элемент 0

Есть ли другая проблема?

(Пожалуйста, объясните, что это такое Formприведите пример ввода файла и вывода в командной строке)

0

Другие решения

Прежде всего научитесь делать отступы и последовательно использовать некоторую схему для вставки пустых строк, что имеет смысл. Когда вы сделаете это, вы сможете прочитать свой собственный код и выяснить, делает ли он то, что вы думаете.

Во-вторых. Сохранить форму («% s», слово) в строке (сейчас назовите ее form_string) добавить эту строку cout<<"form returns "<<form_string<<endl; 99,99%, вероятно, будет печатать нули.

Наконец изменить: cout<<column[0]; в cout<<column[0]<<" "; или же cout<<*(column.rbegin())<<" ";, Последний печатает все значения, которые вы прочитали, первый печатает первое значение, которое вы читаете снова и снова.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector