read()
read函数从打开的设备或文件中读取数据。
ssize_t read [1] (int fd, void *buf, size_t count);
read会把【参数fd所指的文件】传送【nbyte个字节】到buf指针所指的内存中。若参数nbyte为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或无可读取的数据。错误返回-1,并将根据不同的错误原因适当的设置错误码
PS:
fd是一个文件描述符,在形式上是一个非负整数,标准输入(standard input)的文件描述符是 0,标准输出(standard output)是 1,标准错误(standard error)是 2
执行一个shell命令行时通常会自动打开三个标准文件,即标准输入文件(stdin),通常对应终端的键盘;标准输出文件(stdout)和标准错误输出文件(stderr),这两个文件都对应终端的屏幕。进程将从标准输入文件中得到输入数据,将正常输出数据输出到标准输出文件,而将错误信息送到标准错误文件中。
write()
write有两种用法。
一种是:ssize_t write(int fd, const void *buf, size_t nbyte);
fd:文件描述符;buf:指定的缓冲区,即指针,指向一段内存单元;nbyte:要写入文件指定的字节数;
返回值:写入文档的字节数(成功);-1(出错)
write函数把buf中nbyte写入文件描述符handle所指的文档,成功时返回写的字节数,错误时返回-1.
另一种是: write(const char* str,int n)
str是字符指针或字符数组,用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。
write("string",strlen("string");表示输出字符串常量
puts()
int puts(const char *str) 把一个字符串写入到标准输出(显示器) 其中:换行符会被追加到输出中,即输出完 自动换行。
如果成功, 该函数返回一个非负值,如果发生错误则返回 EOF
int k= puts("123 asd");输出:123 asd k输出为0(非负值)
puts()函数只能输出字符串,不能是数值或进行格式变换。
可以将字符串直接写入puts()函数中,输出至屏幕。如:puts("Hello,Turo C2.0:");
printf()
printf("%s",s); 如果成功,则返回写入的字符总数,否则返回一个负数。
printf()函数是式样化输出函数, 一般用于向准则输出设备按规定式样输出消息。
在编写步骤时经常会用到此函数。
printf()函数的挪用式样为: printf("<式样化字符串>",<参量表>)
其中式样化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出;另一部分是式样化规定字符, 以"%"开端, 后跟一个或几个规定字符, 用来确定输出内容式样。
参量表是需求输出的一系列参数, 其个数务必与式样化字符串所阐明的输出参数个数一样多, 各参数之间用","分开, 且顺序逐一对应, 不然将会出现意想不到的过失。
注意:函数printf从左往右读取,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始的,所以我们看见的结果是,从右边开始处理的。
详细可见:printf()函数详解
sprintf()
sprintf(str,"%d",k);将数字k转换成字符串存到str的地址中。
snprintf()
snprintf(),函数原型为int snprintf(char *str, size_t size, const char *format, ...)
将可变个参数(...)按照format格式化成字符串,然后将其复制到str中
(1) 如果格式化后的字符串长度 < size,则将此字符串全部复制到str中,并给其后添加一个字符串结束符('\0');
(2) 如果格式化后的字符串长度 >= size,则只将其中的(size-1)个字符复制到str中,并给其后添加一个字符串结束符('\0'),返回值为欲写入的字符串长度。
补充一下,snprintf的返回值是欲写入的字符串长度,而不是实际写入的字符串度。如:
char test[8];
int ret = snprintf(test,5,"1234567890");
printf("%d|%s/n",ret,test);
运行结果为:
10|1234
int putchar(int char);输出一定指定的字符
char *gets(char *str);从标准stdin中读一行数据直到换行符才结束。
scanf("%s",s);读以字符串,中间不能含有空格,因为以'\0'为结束标志
int getchar(void);从stdin中获取一个字符
int rand(void)产生0~32767的随机整数返回一个随机整数
int scanf(char *format,args,…)从标准输入设备按format指定的格式把输入数据存入到args,…所指的内存中已输入的数据的个数
int getc (FILE *fp)从fp所指文件中读取一个字符返回所读字符,若出错或文件结束返回EOF
int getchar(void)从标准输入设备读取下一个字符返回所读字符,若出错或文件结束返回-1
char *gets(char *s)从标准设备读取一行字符串放入s所指存储区,用’\0’替换读入的换行符返回s,出错返回NULL
int printf(char *format,args,…)把args,…的值以format指定的格式输出到标准输出设备输出字符的个数
int putc (int ch, FILE *fp)同fputc同fputc
int putchar(char ch)把ch输出到标准输出设备返回输出的字符,若出错则返回EOF
int puts(char *str)把str所指字符串输出到标准设备,将’\0’转成回车换行符返回换行符,若出错,返回EOF
char *strcat(char *s1,char *s2)把字符串s2接到s1后面s1所指地址
char *strchr(char *s,int ch)在s所指字符串中,找出第一次出现字符ch的位置返回找到的字符的地址,找不到返回NULL
int strcmp(char *s1,char *s2)对s1和s2所指字符串进行比较s1s2,返回正数
char *strcpy(char *s1,char *s2)把s2指向的串复制到s1指向的空间s1 所指地址
unsigned strlen(char *s)求字符串s的长度返回串中字符(不计最后的'\0')个数
网友评论