gpt4 book ai didi

c - 在C shell程序中制作一个简单的历史函数

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

此命令将列出最近使用过的命令(最多 100 个)。最新的将在底部。需要一些关于从哪里开始的建议。我确信我需要一个 for 循环来打印历史记录。一个提示是二维数组,但我对它们不太熟悉。

  MAX_HIS_SIZE 100
char history[MAX_HIS_SIZE];
int size = 0;

//history function
for(int p =1; p < size; p++)
printf(" %s ",history[p]);
printf("\n");

最佳答案

char history[MAX_HIS_SIZE]保留字符。使用char* history[MAX_HIS_SIZE]访问命令(如果您的命令不仅仅是一个字符)。

如果您想随时访问历史记录,请保留一个指向最后输入的命令的索引。每当您想要列出历史记录时,只需从该点开始倒数,直到到达NULL。这表明列表的末尾。并通过模运算访问您的索引,这样您就可以倒带并访问最旧的命令,将其替换为最新的命令。

const int MAX_HIS_SIZE = 100;
int last = 0;
char * history[MAX_HIS_SIZE];

void newCmd(char* cmd) {
history[last%MAX_HIS_SIZE]=cmd;
last++;
}

void listHistory(){
for(int i = last, limit = 0; history[i] != NULL && limit != MAX_HIS_SIZE ; i = (i -1)%MAX_HIS_SIZE, limit++)
printf(" %s ",history[i]);

}

关于c - 在C shell程序中制作一个简单的历史函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22289428/

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