c - 终止文本字符

标签 c character terminate

我的问题在 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/

相关文章:

c - 将有状态 C 计算与 Modelica 集成

r - 如何从系列字符(列名)中删除最后两个元素?

ios - 未通过键盘输入时跟踪 UITextview 中的文本更改

c++ - 是否允许 null terminate() 处理程序?

c# - 终止C#控制台应用程序

Python - 无法终止进程

c - 为什么 sizeof 未命名位域成员结构打印 1?

c - 为什么要在给定的 C 代码的格式说明符之前提供单个空格?

c - 我的 CS50 Vigenere 代码有什么问题?

c++ - 是否可以将用户输入的单词存储为字符数组?