我是编程新手,我正在尝试理解拥有不同流的概念。我知道 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有什么意义?
大多数计算机程序需要读取输入、输出结果并记录错误。这里有 3 个标准流。
为什么错误和输出是分开的——将错误输出到操作员控制台或打印机而不是在用户输出设备上显示(或打印)它们并不罕见。存在一些内部差异 - 例如,
stderr
没有缓冲。
输入流与标准输出不同,因为使用不同的设备/文件来提供输入数据,而不是输出结果的设备。