我的问题在 OOP 语言中很简单,但在 C 语言中就不那么简单了。 当用户在控制台中输入一些文本数据时,我们为示例 ESC 设置了终止字符(文本数据是多行的,我们不知道什么时候结束)。
所以我的问题是如何从控制台读取文本以及用户是否按 esc 键来打破我们读取文本数据的循环?
这是一些代码:
printf("Enter the source here(press ESC) : \n");
char buffer[1000][1000];
int counter = 0;
while(1)
{
if (fgets(buffer[counter],sizeof(buffer[counter]),stdin))
{
counter++;
}
}
最佳答案
最简单的方法是要求用户通过按 C-z 或 C-d 来“结束文件”。或者:
#define ESC 27 /* But not always. */
int ch;
while ((ch = getc(stdin))) {
if (ch == ESC)
break;
/* ... */
}
由于输入通常是熟的,所以更难谢谢你的想法:用户可以在按下 escape 后继续输入内容。
为此使用 ncurses 是一种替代方法。再说一次,按 C-d 有什么问题?
关于c - 终止文本字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052807/