gpt4 book ai didi

c - printf() 未打印正确的计算结果

转载 作者:行者123 更新时间:2023-11-30 18:40:11 28 4
gpt4 key购买 nike

这里是 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/

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