とてもいたずらな問題です

1014 ワード

C++stringクラスパッケージの関数の利便性とlinuxのC/APIを組み合わせていくつかの方法を実現することをずっと考えています.しかし、stringとchar*の転換に会うたびに気まずい問題が発生しました.
  #include 
  #include 
  #include 
  #include 
  #include 
  #include           /* See NOTES */
  #include 
  #include 
  #include 
  #include 
  using namespace std;


int main(int argc, char const *argv[])
{
 int fd = open("./ok",O_RDWR);

// char buf[1024];
string buf = new char[1023];
read(fd,const_cast(buf.c_str()),1024);
cout << buf << endl;
// string buf2 = (string)buf;
cout << buf.find_first_of(" ",0);
cout << "*********" << endl;

return 0;
}

readの2番目のパラメータはもともとvoidで、一般的に使用するときはcharで作って、ユニークな情報をbufに保存して、後で便利にするために、私はここで直接1つのstringで情報を保存したいと思っています.stringとchar*は互換性がないことを知っていますのでconst_を通じてキャストで変換します.しかし、気まずいのは何も読んでいないことだ.これはなぜですか.