c - 将标准输入回显到标准输出

标签 c echo stdout stdin

编写一个程序,读取标准输入并将每一行回显到标准输出,并在其前面加上行号和制表符。当您运行此程序并从终端输入行时,输入行将散布在输出行中。如果您的系统具有输出重定向,并且您将输出重定向到一个文件,则该文件将看起来像带有编号行的输入。

这是一个脚本应该如何工作的例子。

用户输入的粗体。

输入您的文字:

这是第 1 行。

1 这是第 1 行。

这是第 2 行。

2 这是第 2 行。

这是最后一行输入。

3 这是最后一行输入。

最后一行将结束进程。

这是我目前所拥有的:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    printf("Enter your text: \n");
    while (1)
    {
        int ch = getc(stdin);
        fflush(stdout);
        if(ch == EOF) break;

        putc(ch, stdout);
    }
    return 0;
}

我已经尝试了几个小时但没有成功,感谢您的帮助。我基本上无法让我的脚本显示示例输出。我可以让我的脚本将标准输入显示为标准输出,仅此而已。这是 C 作业。

最佳答案

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

int main(void){
    size_t no = 0;
    bool line_top = true;

    printf("Enter your text: \n");
    while (1) {
        int ch = fgetc(stdin);
        if(ch == EOF) break;

        if(line_top)
            printf("%zu ", ++no);

        line_top = (ch == '\n');

        fputc(ch, stdout);
    }
    fflush(stdout);
    return 0;
}

关于c - 将标准输入回显到标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33355563/

相关文章:

php - if 语句在 echo?

python - Argparse 可选标准输入读取和/或标准输出输出

perl - STDOUT 是什么类型,我如何选择写入它?

c++ - 如何在 C++ 中执行命令并获取命令的返回码 stdout 和 stderr

c++ - 如何在 C++ 和 Qt 中使用运行时加载的库

linux - Bash echo 在字符串外带有 $ 字符

c - 服务器客户端程序未定义行为

bash - 有没有办法从 bash 函数调用强制回显到命令行?

c: 在内核模块中重命名文件

C - dir 路径最后一个文件夹 - 最后是乱码