stdin、stdout 和 stderr 到底是什么? [重复]

问题描述 投票:0回答:1

我是编程新手,我正在尝试理解拥有不同流的概念。我知道 stdout 用于输出,stdin 用于输入,stderr 用于错误,但我不完全理解这些流的作用,为什么有三个流,以及为什么它们需要分开。谁能帮我简化一下吗?

printf("Enter a number: ");
      if (scanf("%d", &num) != 1) {
        fprintf(stderr, "Error: Invalid input. Please enter a number.\n");
        return 1;
    }

例如上面的代码,使用stderr有什么意义?

c stream stdout stdin
1个回答
0
投票

大多数计算机程序需要读取输入、输出结果并记录错误。这里有 3 个标准流。

为什么错误和输出是分开的——将错误输出到操作员控制台或打印机而不是在用户输出设备上显示(或打印)它们并不罕见。存在一些内部差异 - 例如,

stderr
没有缓冲。

输入流与标准输出不同,因为使用不同的设备/文件来提供输入数据,而不是输出结果的设备。

© www.soinside.com 2019 - 2024. All rights reserved.