主题:C++ 字符指针函数返回字符串的值,但是空?
char *getstr(ifstream &infile) //函数,返回文件中的字符串地址
{
string str;
//char *str_back = NULL;
//str_back = (char *) malloc (10 * sizeof(char));
char ch;
getline(infile, str, ' ');
char *str_back = const_cast<char *>(str.c_str());
ch = infile.get();
while (ch != '\n') //字符串后的内容都不要,换行
{
ch = infile.get();
}
cout << str_back; //这个地方输出没有问题
return str_back;
{
string str;
//char *str_back = NULL;
//str_back = (char *) malloc (10 * sizeof(char));
char ch;
getline(infile, str, ' ');
char *str_back = const_cast<char *>(str.c_str());
ch = infile.get();
while (ch != '\n') //字符串后的内容都不要,换行
{
ch = infile.get();
}
cout << str_back; //这个地方输出没有问题
return str_back;
}
int main(void)
{
ifstream infile;
char *com_str = NULL;
infile.open("output.txt", ios::in);
if (!infile)
{
cout << "Cann't open the file!" << endl;
exit(0);
}
com_str = getstr(infile); //调用返回文件中的字符串地址
cout << com_str << endl; //这个地方输出为什么和str_back的值不一样?空间释放了?跟踪查看地址没有问题
}