将std字符串转换为const char *

时间:2011-07-04 16:12:12

标签: c++ file-io

运行这段代码时出现错误

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

错误 - 无法将参数'2'的'std :: string'转换为'const char *'为'char * strncpy(char *,const char *,size_t)' 如何摆脱这个?

2 个答案:

答案 0 :(得分:5)

尝试:

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

这使用std::string类型的c_str()成员函数。

答案 1 :(得分:3)

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

但是你为什么要首先使用固定长度缓冲区file_input?将其构建为包含std::string中前五个字符的新line会更安全:

std::string file_input(line, 0, 5);