C 获取内存信息并输出

headfile.h

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define TRUE 1
#define FALSE 0
#define MAX 10000

typedef int KeyType;
typedef int OtherType;

typedef struct
{
    KeyType key;
    OtherType other_data;
}RecordType;
seek.cpp

#include "stdafx.h"
#include "headfile.h"
#include "windows.h"
#include  "conio.h "

#include"WinBase.h"
#include "Psapi.h"

#pragma  once
#pragma  message("Psapi.h --> Linking with Psapi.lib")
#pragma  comment(lib,"Psapi.lib")

int Data[MAX]={0};

void produceData(int a[],int length)       //给数组生成数据,用于随即查找
{
    time_t t;
    srand(time(&t));
    for (int i=0;i<length;i++)
    {
        a[i]=rand()%length;
    }
}

void printData(int a[],int length)      //打印数字,到控制台,每五个换一行
{
    for (int i=0;i<length;i++)
    {
        printf("%8d",a[i]);
        if (0==i%5)
        {
            printf("\n");
        }
    }
}

double showMemoryInfo()   
{   
    double MemorySize;                  //单位MB
    HANDLE handle=GetCurrentProcess();   

    PROCESS_MEMORY_COUNTERS pmc;   
    GetProcessMemoryInfo(handle,&pmc,sizeof(pmc)); 
    MemorySize=pmc.WorkingSetSize/1024;

    printf("内存使用:  %8lf \n",MemorySize);    //WorkingSetSize The current working set size, in bytes.

    return MemorySize;
} 

void writeRecordtime(unsigned rTime)//将程序结果运行时间写入文件
{
    FILE *fpRecord=NULL; 

    char *s="your programm running time is:   ";
    char *c="ms   ";

    if((fpRecord=fopen("record.txt","wt+"))==NULL) 
    { 
        printf("Cannot open file strike any key exit!"); 
        getchar(); 
        exit(1); 
    } 

    fprintf( fpRecord, "%s", s);
    fprintf( fpRecord, "%d", rTime);
    fprintf( fpRecord, "%s", c);

    fprintf( fpRecord, "\n");
    fprintf( fpRecord, "your programm use %fMB size of memory!!!", showMemoryInfo());

    fclose(fpRecord); 
}

int _tmain(int argc, _TCHAR* argv[])
{
    produceData(Data,MAX);
    printData(Data,MAX);
    getchar();
    return 0;
}


<think>好的,用户想了解如何获取输出信息的方法和示例。首先,我需要明确用户的需求是什么。他们可能指的是编程中的输入输出操作,但具体语言没有指定。根据提供的引用,里面有Java、C语言和ABB机器人的例子,所以可能需要涵盖不同语言的示例。 接下来,我得整理不同编程语言中常见的输入输出方法。比如,在C语言中,使用scanf和printf;在Java中,使用Scanner和System.out;Python中使用input和print。可能还需要提到文件操作,比如读写文件,因为引用里提到了输入输出流。 用户提供的引用中有关于Java输入输出流、C语言的指针释放和ABB机器人的脉冲输出指令。这可能意味着用户对这些特定场景也感兴趣,或者需要更广泛的示例。因此,我应该包括控制台输入输出、文件操作以及可能的硬件相关输出,如脉冲信号。 需要确保每个示例语法正确,且符合用户提到的格式要求,比如行内数学表达式用$...$,独立公式用$$...$$。不过当前问题主要涉及代码示例,可能数学公式较少,但如果有的话需要正确应用。 然后,生成相关问题。问题应该围绕输入输出的扩展,比如不同语言的差异、性能优化、异常处理等。还要检查引用中的内容,合理添加引用标记,比如在提到Java输入输出流时引用[^1],在脉冲输出时引用[^2],在C语言指针释放时引用[^3]。 最后,确保回答结构清晰,分点说明不同方法,每个方法都有示例代码和解释。同时,语言要使用中文,避免使用Markdown格式,代码块用三个反引号包裹。需要确认所有引用都正确对应,且在相关部分末尾自然添加引用标识。</think>### 获取输出信息的方法与示例 #### 1. 控制台输入输出 **C语言**:使用`scanf`和`printf`函数 ```c #include <stdio.h> int main() { int num; printf("请输入一个整数:"); scanf("%d", &num); printf("您输入的值是:%d\n", num); return 0; } ``` **Java**:使用`Scanner`类和`System.out` ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入字符串:"); String input = scanner.nextLine(); System.out.println("您输入的内容是:" + input); scanner.close(); } } ``` 引用[1]中提到的Java输入输出流代码示例与此相关[^1]。 #### 2. 文件读写操作 **Python文件读写**: ```python # 写入文件 with open("output.txt", "w") as f: f.write("Hello, World!") # 读取文件 with open("output.txt", "r") as f: content = f.read() print("文件内容:", content) ``` **C语言文件操作**: ```c #include <stdio.h> int main() { FILE *fp = fopen("data.txt", "w"); fprintf(fp, "示例文本"); fclose(fp); fp = fopen("data.txt", "r"); char buffer[100]; fgets(buffer, 100, fp); printf("读取内容:%s\n", buffer); fclose(fp); return 0; } ``` #### 3. 硬件输出控制 **ABB机器人脉冲输出**: 通过`PulseDO`指令控制数字输出信号,引用[2]中的示例格式如下: ```rapid PulseDO \PLength:=0.5, DO1; ``` 此指令使DO1输出宽度为0.5秒的脉冲信号。 #### 4. 指针与内存操作(C语言) 引用[3]中提到的二级指针释放示例展示了指针操作的关键点[^3]: ```c int free_str2(char *str) { if(str == NULL) return -1; free(str); // 释放内存但无法置空指针 return 0; } ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值