Как мне "распечатать" массив строк в C ++? - PullRequest
0 голосов
/ 06 мая 2019

По сути, у меня есть следующий фрагмент кода:

#include <stdio.h>
#include <string>
#include <iostream>

using namespace std;

int main(void)
{
   string energy[9] ={"1E4","3E4","1E5","3E5","1E6","3E6","1E7","3E7","1E8"};

   for (int j = 0; j < 9; j++)
   {
     //printf("%s\n", energy[j]);
     //cout << energy[j] << endl;
   }
}

И я хотел бы "printf" каждый элемент массива строки с помощью printf, как это делает команда "cout".Я пробовал указатели на первый элемент массива и некоторые другие методы, но я не могу заставить его работать.Что мне нужно поместить в printf и почему то, что в данный момент находится в моем printf, не работает?

Заранее спасибо за помощь.

1 Ответ

5 голосов
/ 06 мая 2019

printf ожидает тип char*, но вы передаете std::string in. Используйте функцию data() или c_str() для извлечения указателя на массив символов из строки.

printf("%s\n", energy[j].data());
...