Разделенная строка массива в c

#c #opencv

Вопрос:

Я новичок в cpp, и у меня есть ситуация, в которой я хочу разделить строку массива

У меня есть

 for( i = k = 0; i lt; points[1].size(); i   )  {  cout lt;lt; points[1][k];  }  

Вывод gt;gt;gt;

 [390.826, 69.2596]  [500.324, 92.9649]  [475.391, 132.093]  [5.60519e-44, 4.62428e-44]  

Я хочу

 390.826  69.2596  500.324  92.9649  475.391  132.093  5.60519e-44  4.62428e-44  

Пожалуйста, помогите мне.Спасибо

Комментарии:

1. Что такое points ? Почему ваше тело цикла не включает переменную цикла i ?

Ответ №1:

Предполагая, что тип точки имеет public элементы x и y :

 for( i = k = 0; i lt; points[1].size(); i   ) {  cout lt;lt; points[1][k].x lt;lt; endl;  cout lt;lt; points[1][k].y lt;lt; endl; }  

Если члены-это что-то другое, скажем, X и Y (верхний регистр), то вместо этого используйте верхний регистр (или что бы это ни было).

Причина, по которой вы кодируете вывод таким образом, заключается в том, что operatorlt;lt; он был перегружен для типа точки. Что-то вроде:

 std::ostream amp; operatorlt;lt;(std::ostream amp; out, const point amp;p) {  return out lt;lt; "[" lt;lt; p.x lt;lt; "," lt;lt; p.y lt;lt; "]n";  }  

Если вы можете найти приведенное выше определение (или что-то подобное) где-нибудь в исходном коде вашего проекта, а затем изменить его на это:

 std::ostream amp; operatorlt;lt;(std::ostream amp; out, const point amp;p) {  return out lt;lt; p.x lt;lt; "n" lt;lt; p.y lt;lt; "n";  }  

тогда вам не нужно было бы изменять код в вашем for цикле.

Комментарии:

1. @Nim: Ха-ха, это было просто предположение, что у этого типа будут x и y члены.:D

2. Это не значит, что это ваш опыт. В любом случае, спасибо, что это сработало для меня

Ответ №2:

Это не имеет ничего общего с разделением строк, что points[1][k] на самом деле возвращает (т. Е. Это тип). Затем посмотрите, как он реализовал оператор stream out ( operatorlt;lt; ), и вы увидите, как печатается вышесказанное. Это должно дать вам представление о двух отдельных значениях (т. Е. полях этого типа*), и вы можете просто получить к ним доступ и распечатать их.

Комментарии:

1. не могли бы вы, пожалуйста, помочь мне хотя бы ссылкой

2. @WasimKarani, ссылка на что? Я не знаю, что points[1][k] это такое, ты единственный, кто знает… вам нужно взглянуть на код.