gpt4 book ai didi

windows - 替代 fgets()?

转载 作者:可可西里 更新时间:2023-11-01 11:15:14 26 4
gpt4 key购买 nike

描述:

  • 从可执行文件中获取输出

注意:

  • 不会编译,由于 fgets() 声明

问题:

  • 什么是 fgets 的最佳替代品,因为 fgets 需要 char *?
  • 有更好的选择吗?

插图:

void Q_analysis (const char *data)
{
string buffer;
size_t found;
found = buffer.find_first_of (*data);

FILE *condorData = _popen ("condor_q", "r");
while (fgets (buffer.c_str(), buffer.max_size(), condorData) != NULL)
{
if (found == string::npos)
{
Sleep(2000);
} else {
break;
}
}
return;
}

最佳答案

您应该对字符串使用 string.getline 函数 cppreference

但是在您的情况下,您应该使用 char[] 来读入。

例如

string s;
char buffer[ 4096 ];
fgets(buffer, sizeof( buffer ), condorData);
s.assign( buffer, strlen( buffer ));

或您的代码:

void Q_analysis( const char *data )
{
char buffer[ 4096 ];

FILE *condorData = _popen ("condor_q", "r");
while( fgets( buffer, sizeof( buffer ), condorData ) != NULL )
{
if( strstr( buffer, data ) == NULL )
{
Sleep(2000);
}
else
{
break;
}
}
}

关于windows - 替代 fgets()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/603075/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com