我搜索了很多并阅读了很多代码,但我不明白为什么无法打印变量(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);
}
答案 0 :(得分:2)
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::string
,std::cout
和其他工具来简化您的生活,在使用C ++进行编程时,不必使用C编程。 < / p>