- 浏览: 2031047 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (651)
- ACE (35)
- BAT (9)
- C/C++ (116)
- fast-cgi (14)
- COM (27)
- python (59)
- CGI (4)
- C# (2)
- VC (84)
- DataBase (29)
- Linux (96)
- P2P (6)
- PHP (15)
- Web (6)
- Memcached (7)
- IME输入法 (11)
- 设计模式 (2)
- 搜索引擎 (1)
- 个人情感 (4)
- 笔试/面试 (3)
- 一亩三分地 (33)
- 历史 (2)
- 地理 (1)
- 人物 (3)
- 经济 (0)
- 不仅仅是笑哦 (43)
- 小故事大道理 (2)
- http://www.bjdsmyysjk120.com/ (0)
- http://www.bjdsmyy120.com/ (0)
- 它山之石可以攻玉 (15)
- 大学生你关注些什么 (28)
- 数据恢复 (1)
最新评论
-
luokaichuang:
这个规范里还是没有让我明白当浏览器上传文件时,STDIN的消息 ...
FastCGI规范 -
effort_fan:
好文章!学习了,谢谢分享!
com技术简介 -
vcell:
有错误os.walk(strPath)返回的已经是全部的文件和 ...
通过python获取目录的大小 -
feifeigd:
feifeigd 写道注意:文章中的CPP示例第二行 #inc ...
ATL入门:利用ATL编写简单的COM组件 -
feifeigd:
注意:文章中的CPP示例第二行 #include " ...
ATL入门:利用ATL编写简单的COM组件
C语言中标准输入流、标准输出流、标准错误输出流
在Linux中,所有对设备和文件的操作都使用文件描述符来进行。
Linux中一个进程启动时,都会打开3个文件:标准输入、标准输出和标准出错处理。这三个文件分别对应文件描述符0、1、2。
在C语言中,在程序开始运行时,系统自动打开3个标准文件:标准输入、 标准输出、标准出错输出。通常这3个文件都与终端相联系。因此,以前我们所用到的从终端输入或输出都不需要打开终端文件。系统自定义了3个文件指针stdin、stdout、stderr,分别指向终端输入、终端输出和标准出错输出(也从终端输出)。
标准输入流:stdin
标准输出流:stdout
标准错误输出流:stderr
测试代码:
#include <stdio.h>
int main()
{
int a = 0;
char szTmp[100] = {0};
try
{
fprintf(stdout, "please input a:\n");
fscanf(stdin, "%d", &a);
fprintf(stdout, "a=%d\n", a);
fprintf(stdout, "please input szTmp:\n");
fscanf(stdin, "%s", szTmp);
fprintf(stdout, "szTmp:%s\n", szTmp);
}
catch(...)
{
fprintf(stderr, "input error!");
}
return 0;
}
编译:
g++ -o a a.cpp
测试结果:
./a
please input a:
123
a=123
please input szTmp:
aaaaaaaaaaaaaaaaaaaaaaa
szTmp:aaaaaaaaaaaaaaaaaaaaaaa
PS:相关文档
stdin
object
<cstdio>
FILE * stdin;
Standard input stream
The standard input stream is the default source of data for applications. It is usually directed to the input device of the standard console (generally, a keyboard).
stdin can be used as an argument for any function that expects an input stream as one of its parameters, like fgets or fscanf.
Although it is generally safe to assume that the source of data for stdin is going to be a keyboard, bear in mind that this may not be the case even in regular console systems, since stdin can be redirected at the operating system level. For example, many systems, among them DOS/Windows and most UNIX shells, support the following command syntax:
myapplication < example.txt
to use the content of the file example.txt as the primary source of data for myapplication instead of the console keyboard.
It is also possible to redirect stdin to some other source of data from within a program using the freopen function.
stdout
object
<cstdio>
FILE * stdout;
Standard output stream
The standard output stream is the default destination of regular output for applications. It is usually directed to the output device of the standard console (generally, the screen).
stdout can be used as an argument for any function that expects an output stream as one of its parameters, like fputs or fprintf.
Although it is generally safe to assume that the default destination for stdout is going to be the screen, bear in mind that this may not be the case even in regular console systems, since stdout can be redirected at the operating system level. For example, many systems, among them DOS/Windows and most UNIX shells, support the following command syntax:
myapplication > example.txt
to redirect the output of myapplication to the file example.txt instead of the screen.
It is also possible to redirect stdout to some other source of data from within a program using the freopen function.
stderr
object
<cstdio>
FILE * stderr;
Standard error stream
The standard error stream is the default destination for error messages and other diagnostic warnings. Like stdout, it is usually also directed to the output device of the standard console (generally, the screen).
stderr can be used as an argument for any function that expects an output stream as one of its parameters, like fputs or fprintf.
Although generally both stdout and stderr are associated with the same console output, applications may differentiate between what is sent to stdout and what to stderrfor the case that one of them is redirected. For example, it is frequent to redirect the regular output of a console program (stdout) to a file while expecting the error messages to keep appearing in the console screen.
It is also possible to redirect stderr to some other destination from within a program using the freopen function.
perror
function
<cstdio>
void perror ( const char * str );
Print error message
Interprets the value of the global variable errno into a string and prints that string to stderr (standard error output stream, usually the screen), optionaly preceding it with the custom message specified in str.
errno is an integral variable whose value describes the last error produced by a call to a library function. The error strings produced by perror depend on the developing platform and compiler.
If the parameter str is not a null pointer, str is printed followed by a colon (:) and a space. Then, whether str was a null pointer or not, the generated error description is printed followed by a newline character ('\n').
perror should be called right after the error was produced, otherwise it can be overwritten in calls to other functions.
Parameters.
str
C string containing a custom message to be printed before the error message itself.
If it is a null pointer, no preceding custom message is printed, but the error message is printed anyway.
By convention, the name of the application itself is generally used as parameter.
发表评论
-
Berkeley DB 使用经验总结
2012-08-27 14:41 3083作者:陈磊 NoSQL是现在互联网Web2.0时代备受 ... -
嵌入式数据库系统Berkeley DB
2012-08-27 14:37 1527前言 UNIX/LINUX平台下的数据库种类非常多 ... -
Rsync 实现原理
2011-05-12 20:06 8313Rsync 实现原理 前言 关于rsync的原始文档 ... -
c++简单的虚函数测试
2011-04-27 14:25 1013#include <iostream> u ... -
C++文件行查找
2011-04-26 14:10 1399#include <iostream> # ... -
c++偏特化简单示例
2011-04-13 11:17 2151c++偏特化 // temp1.c ... -
GDB调试精粹及使用实例
2011-03-16 14:06 1133GDB调试精粹及使用实例 一:列文件清单 1. ... -
简单的ini文件解析
2011-02-12 16:36 1611int GetKeyVal(const string s ... -
scanf族函数高级用法
2011-01-25 16:00 2550如何解释 fscanf(fd,&quo ... -
使用scons替代makefile(1)
2011-01-25 11:58 3721早在多年前我刚开始接触linux下的C程序时,经常被makef ... -
使用scons替代makefile(2)
2011-01-25 11:57 3575本篇文章接着上一篇进一步介绍scons的使用方法,主要介绍静态 ... -
使用scons替代makefile(3)
2011-01-25 11:55 4817在上两篇文章中已经简单介绍了用scons编译库文件,可执行程序 ... -
C 支持动态添加测试数据的测试代码
2011-01-13 17:22 1113/下面的定义为了支持可扩增。 //当需要增加一个新的测试用列 ... -
Linux下Makefile的automake生成
2010-12-28 16:55 1094******************helloworld.c* ... -
SCons笔记(详细版)
2010-12-23 16:11 104951. 基本使用 SConstruct文件就功能而言相当于Ma ... -
scons 学习
2010-12-23 11:14 2176scons 学习 作者:Sam(甄峰) sam_code@h ... -
scons随笔
2010-12-22 20:20 4700scons随笔 Scons是新一代的软件构件工具,或者说ma ... -
Scons在linux下的安装和使用
2010-12-21 11:59 3276因为正在用的一个开源软件需要的Developm ... -
排列组合的实现
2010-12-20 12:41 1056简单算法: 从前往后(或者从后往前)每次交换一个位置。当存在 ... -
UDP编程的服务器 Linux
2010-10-22 18:44 1323UDP编程的服务器端一般步骤是: ...
相关推荐
- **标准错误**(`stderr`):错误信息的输出位置。`perror()`函数也会将输出写到这里。在很多系统中,`stdout`和`stderr`默认指向同一个设备,但在必要时可以分开,确保即使标准输出被重定向,错误信息仍然显示在...
4. **标准输入和标准输出**:在C语言中,有三个预定义的文件流,即标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)。默认情况下,键盘是标准输入的来源,屏幕是标准输出和标准错误输出的目的地。 5...
- **避免多次重定向**:不要在同一程序中多次对同一标准流进行重定向,除非有明确的需求。重复重定向可能会导致不可预料的行为。 - **资源管理**:使用完毕后,记得关闭文件,释放资源。虽然在程序结束时系统会自动...
`stderr`则是标准错误输出,用于输出错误信息。 2. **基本输入输出函数** - `printf()`:这是C语言中最常用的输出函数,用于格式化输出。例如,`printf("Hello, %s!\n", "World");`会打印出"Hello, World!"。 - `...
- C99标准规定了C语言程序的语法、类型系统、运算符、控制流、预处理器、内存管理、输入/输出等各个方面。它旨在提供一种形式化的方法来解释源代码,确保不同实现下的编译器对同样代码的处理有明确一致的结果。 - ...
C语言输入输出函数是C语言标准库中的输入输出函数,主要是为了处理输入输出操作提供了一些基本的函数。这些函数都定义在stdio.h头文件中,主要用于处理文件输入输出、格式化输入输出、字符串输入输出等操作。 1. ...
C语言中有多种输入输出流,包括标准输入、标准输出和标准错误。标准输入是指从键盘或文件输入数据,标准输出是指将数据输出到屏幕上,标准错误是指将错误信息输出到屏幕上。例如: ```c #include int main() { ...
1. **I/O流(IO Stream)**:如`stdio.h`头文件中的函数,包括`printf`、`scanf`、`fopen`、`fclose`等,用于处理输入输出操作,如文件读写和屏幕打印。 2. **字符串处理(String Handling)**:如`string.h`头文件...
本章节将详细解析传统C语言中标准I/O库的局限性,并阐述输入输出流如何提供一种更加高效、安全且易于使用的解决方案。 在C语言中,我们使用标准I/O库来进行文件的读写操作。然而,随着软件工程的发展以及对安全性、...
7. **输入/输出**:C语言的输入输出主要通过标准输入输出库stdio.h实现,包括printf和scanf等函数。理解缓冲区的概念和流的处理方式对于调试和优化程序很有帮助。 8. **错误处理和调试**:C语言没有内置的异常处理...
在C语言中,标准输入输出是程序与用户交互的基础,主要涉及`stdin`(标准输入)、`stdout`(标准输出)和`stderr`(标准错误)这三个流。本题库的章节聚焦于标准设备的输入输出,特别是如何通过格式化输入输出处理不同类型...
输入输出流是程序与外部数据源交互的桥梁,包括从键盘、文件、网络等源头读取数据(输入流)以及向显示器、文件、网络等目标写入数据(输出流)。Java的`InputStream`和`OutputStream`是所有字节流的基类,`Reader`...
在C语言中,我们通常使用标准输入输出函数库中的`scanf`函数来读取用户的输入。`scanf`函数通过指定的格式字符串来解析输入的值,并根据格式字符串中的指示符将输入值存储在相应的变量中。在C语言中,实现多次输入的...
iostream库包括和等头文件,其中提供了输入流的声明,提供了输出流的声明,而头文件则包含了对cin和cout等标准流对象的定义。在程序中使用输入输出流,需要包含iostream头文件,即使用预处理指令#include。 cout...
标准输入输出包括了对标准输入输出流的操作,如stdin、stdout等。 文件的输入输出涉及到了文件操作相关的函数,比如fopen、fclose、fread、fwrite等,用于实现对文件的读写操作。可变参数函数允许函数接受不同数量...
C语言的标准库是其核心组成部分,包含了各种常用的函数,如输入输出、字符串处理、数学运算等。这个压缩包文件“C语言标准库函数的源代码”提供了一个深入了解C语言内部机制的机会,下面我们将详细探讨其中的知识点...
C语言中常用的标准库函数涵盖了从基础类型定义到文件操作、字符串处理、数学计算等多个方面,对于编程人员来说,掌握这些函数的使用是进行C语言编程的基础。接下来,我将对C标准库中的常用函数进行详细说明。 首先...