C++ 如何从char[]中获取值

C++ 如何从char[]中获取值,c++,linux,scanf,C++,Linux,Scanf,不过,谢谢所有帮助我的人。 我想从/proc/pid/status获取VmRSS值,下面是代码 int main() { const int PROCESS_MEMORY_FILE_LEN = 500; FILE *file; std::string path("/proc/4378/status"); //path += boost::lexical_cast<std::string>( pid ); //path += "/status"

不过,谢谢所有帮助我的人。 我想从/proc/pid/status获取VmRSS值,下面是代码

int main()
{ 
    const int PROCESS_MEMORY_FILE_LEN = 500;
    FILE *file;
    std::string path("/proc/4378/status");
    //path += boost::lexical_cast<std::string>( pid );
    //path += "/status";
    if(!(file = fopen(path.c_str(),"r")))
    {
        std::cout <<"open " << path<<"is failed " << std::endl;
        return float(-1);
    }
    char fileBuffer[PROCESS_MEMORY_FILE_LEN];
    memset(fileBuffer, 0, PROCESS_MEMORY_FILE_LEN);
    if(fread(fileBuffer, 1, PROCESS_MEMORY_FILE_LEN - 1, file) != (PROCESS_MEMORY_FILE_LEN - 1))
    {
        std::cout <<"fread /proc/pid/status is failed"<< std::endl;
        return float(-1);
    }

    fclose(file);

    unsigned long long memoryUsage = 0;
    int a = sscanf(fileBuffer,"VmRSS: %llu", &memoryUsage);
    std::cout << a << std::endl;
    std::cout << memoryUsage << std::endl;
}
intmain()
{ 
const int PROCESS\u MEMORY\u FILE\u LEN=500;
文件*文件;
std::字符串路径(“/proc/4378/status”);
//path+=boost::词法转换(pid);
//路径+=“/状态”;
如果(!(file=fopen(path.c_str(),“r”))
{

STD::根据您的注释,CUT< P>:在Car数组中找到<代码> VmRSS <代码>,与C++结合使用。然后您将得到<代码> VmRSS < /C>的位置,您只需检索所需结果。
除此之外,直接读取字符串可能更好。

您的确切问题是什么?我们不会逐条检查您的代码。您到底在问什么?在堆栈溢出问题上,需要提出特定的问题或寻求特定的建议。pid是什么过程?如果您想获得程序,您不能硬编码PID,因为它将永远在运行之间变化。抱歉,我没有把它弄清楚。问题是:我有一个字符[],数据是:“A 1:2 \N C…3:N:N \N VMRSS:4”;我想得到VMRSS的值。所以,这是我的问题。为什么你要用C++来和旧的STIDO函数混合?为什么你要从代码<主< /代码>返回浮动?