将上面两个代码合为一个代码
时间: 2024-03-13 11:42:22 浏览: 70
下面是将两段代码合并成一个的程序:
```c
#include <stdio.h>
#include <conio.h>
#include <stdbool.h>
#include <string.h>
#define MAX_INPUT_SIZE 1000
#define MAX_QUEUE_SIZE 1000
void main() {
char input[MAX_INPUT_SIZE];
char queue[MAX_QUEUE_SIZE];
int front = 0, rear = 0;
bool isChatting = true;
printf("开始和 AI 进行聊天,输入 '#' 结束聊天\n");
while (isChatting) {
printf("我说:");
fgets(input, MAX_INPUT_SIZE, stdin);
input[strcspn(input, "\n")] = 0; // 去掉输入字符串的换行符
// 如果输入的是 '#',结束聊天
if (strcmp(input, "#") == 0) {
isChatting = false;
continue;
}
// 将输入的字符串加入队列尾部
for (int i = 0; i < strlen(input); i++) {
queue[rear] = input[i];
rear++;
}
// 读取 AI 的回复并输出
printf("AI 说:");
while (front < rear) {
printf("%c", queue[front]);
front++;
}
printf("\n");
}
printf("聊天结束\n");
getch();
}
```
这个程序中,我们首先定义了一个输入字符串 input 和一个队列 queue,利用一个 while 循环来实现和 AI 的聊天。在循环中,我们首先输出提示信息,等待用户输入。如果用户输入的是 '#',则结束聊天;否则,将输入的字符串逐个字符加入队列尾部。
接着,我们读取 AI 的回复,输出到屏幕上。具体实现是使用一个循环,逐个输出队列中的字符,直到队列为空。注意,我们在读取用户输入时,使用了 fgets 函数,可以防止用户输入超过 MAX_INPUT_SIZE 个字符,从而导致内存溢出。
阅读全文