这里是 C++ 程序员,需要快速解决以下问题。
我需要执行以下减法,其中输入从文件中获取,所需的数字存储在变量中。但是 printf() 显示的值是 0。
#include<stdio.h>
main()
{ system("clear");
system("cat /proc/meminfo | grep MemTotal");
system("cat /proc/meminfo | grep MemFree ");
int a=system("cat /proc/meminfo | grep MemTotal | grep -Eo [0-9]+");
int b=system("cat /proc/meminfo | grep MemFree | grep -Eo [0-9]+");
int c=a-b;
printf("%d \n",c);
}
输出如下:
MemTotal: 3913212 kB
MemFree: 1769672 kB
3913212
1769388
0
此外,有没有一种方法可以抑制代码中第 7 行和第 8 行的输出,因为我只需要它们存储在变量中。
编辑:修复长整型。
谢谢
最佳答案
popen 的示例(已测试)。
#include <stdio.h>
int main(){
system("clear");
system(" grep MemTotal /proc/meminfo");
system(" grep MemFree /proc/meminfo");
int totalMem=0 , freeMem=0;
FILE *fp = popen("grep MemTotal /proc/meminfo | grep -Eo [0-9]+", "r");
FILE *fp1 = popen("grep MemFree /proc/meminfo | grep -Eo [0-9]+", "r");
fscanf(fp, "%d", &totalMem);
fscanf(fp1, "%d", &freeMem);
printf("%d \n",totalMem-freeMem);
pclose(fp);
pclose(fp1);
}
关于c - printf() 未打印正确的计算结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27046710/