繁体   English   中英

在if语句中输出Command Shell

[英]output Command Shell in if statment

我已经搜索了很多并且阅读了很多代码,但是我不明白为什么不能打印该变量(cmd输出)以确保它的问题可能是重复的,但是我无法对下面看到的任何代码发表评论50信誉是我正在尝试的代码,我正在尝试获取cmd的输出并在IF语句中使用它,例如,如果给出错误,则重新发送命令

#include <stdlib.h>
#include <string>
#include <iostream>
#include <stdio.h>

int main(int argc, char *argv[])
{
 FILE *lsofFile_p = popen("adb reboot", "r");

  if (!lsofFile_p)
  {
    return -1;
  }


  char buffer[1024];
  char *line_p = fgets(buffer, sizeof(buffer), lsofFile_p);
  pclose(lsofFile_p);
  printf("\n\n", *lsofFile_p);
}

编辑的照片 在此处输入图片说明

printf("\n\n", *lsofFile_p);

这只会打印两个\\n 而已。 不多不少。 这就是为什么您认为它不打印任何内容的原因。 还要注意, *lsofFile_p是未定义的行为,因为您在前一行关闭了文件,这使文件指针无效。

您可能要打印从lsofFile_p读取的行,该行存储在buffer

//'%s' take the second argument of printf and interprets it as a string
printf("%s\n\n", buffer);

考虑使用std::stringstd::cout和其他工具来std::cout生活,使用C ++编程时不必使用C进行编程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM