Преобразование строки std в const char * - PullRequest
1 голос
/ 04 июля 2011

Я получаю сообщение об ошибке при запуске этого фрагмента кода

  string line;
  getline (myfile,line);
  char file_input[15];
  strncpy(file_input, line, 6);
  cout << line << endl;

Ошибка - невозможно преобразовать 'std :: string' в 'const char *' для аргумента '2' в 'char * strncpy(char *, const char *, size_t) 'Как от этого избавиться?

Ответы [ 2 ]

5 голосов
/ 04 июля 2011

Попробуйте:

strncpy(file_input, line.c_str(), 6);

При этом используется функция-член c_str() типа std::string.

3 голосов
/ 04 июля 2011
strncpy(file_input, line.c_str(), 6);

Но зачем вам в первую очередь буфер фиксированной длины file_input? Было бы безопаснее создать его как новый std::string, содержащий первые пять символов в line:

std::string file_input(line, 0, 5);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...