关于fputs和fgets的几个细节】的更多相关文章

C语言中两个标准IO fputs和fgets都是针对行来进行数据的读取的!这里关于这两个IO函数我有几个小细节想在这里和大家分享一下,希望能够对大家产生帮助! 首先贴上这两个函数的函数声明,下面以这两个函数声明为基础进行讨论: 我用于调试的代码如下: /* 本程序的输入为nihaoa,然后通过gdb调试来查看fputs的缓冲区内的内容 */ #include<stdio.h> #include<string.h> #include<stdlib.h> #include&…
1.      fputs 函数名: fputs  功  能: 送一个字符到一个流中  用  法: int fputs(char *string, FILE *stream); 说明: fputs是一种函数,具有的功能是向指定的文件写入一个字符串(不自己主动写入字符串结束标记符'\0').成功写入一个字符串后,文件的位置指针会自己主动后移.函数返回值为非负整数:否则返回EOF(符号常量,其值为-1). 缓冲区string中保存的是以'/0'结尾的字符串.fputs将该字符串写入文件stream,…
char *fgets(char *s, int size, FILE *stream); int fputs(const char *s, FILE *stream);   使用fgets从流中读取数据时会在存放的缓冲区中自动添加 '\0' 结尾 例如: #include <stdio.h> int main(int argc, const char *argv[]) { FILE *fp = NULL; fp = fopen(argv[],"r"); if(fp ==…
//fputs()和fgets() #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<string.h> //文本写文件 int writeWord(const char *path,const char *pword){ ; if (path == NULL) { ERRO_MSG = ; printf("path==NULL erro msg:%d\n…
一. 文件格式化读入函数 fscanf()  int  fscanf(文件指针,格式化字符串,输入列表); 返回值: 整形,输入列表中定义字符串的个数. 1, 例如读取字符串: char  str1[256], str2[256]; FILE  *file; int n,m; n=fscanf(file,"%s%s",str1,str2);      \\n=2 m=fscanf(file,"%s%s\n",str1,str2);   \\m=2,格式字符串中可以加…
5.1 引言 本章说明标准 I/O 库.因为不仅在 UNIX 上,而且在很多操作系统上都实现了此库,所以它由 ISO C 标准说明. 标准 I/O 库处理很多细节,例如缓冲区分配,以优化长度执行 I/O 等.这些处理使用户不必担心如何选择使用正确的块长度(如3.9节所述).这使得它便于用户使用,但是如果不叫深入地了解 I/O 库函数的操作,也会带来一些问题. 标准 I/O 库是由 Dennis Ritchie 在1975年左右编写的.令人惊讶的是,经过30年后,对标准 I/O 库只做了极小的修改…
什么是标准IO呢?有哪些特点? 标准IO是标准c库提供的对文件操作的函数接口.他的特点是:1 带缓存,2 大部分都调用系统接口函数实现.(c库就是一种实现好的函数接口,作用是屏蔽下层细节.提供上层接口.提高移植性) 我们都知道标准IO是带有缓存的,那么缓存分为几种呢? 1>全缓存: 有4096byte,截止条件有三,一是缓存满的时候,二是调用fflush的时候,三是进程正常结束的时候 2>行缓存: 有1024byte,它与全缓存截止的条件最大的差异就是另外遇到'\n'的时候. 3>不缓存…
前言 标准 IO 库自 1975 年诞生以来,至今接近 50 年了,令人惊讶的是,这期间只对它做了非常小的修改.除了耳熟能详的 printf/scanf,回过头来对它做个全方位的审视,看看到底优秀在哪里. 打开关闭 要想使用 IO 流就必需打开它们.三个例外是标准输入 stdin.标准输出 stdout.标准错误 stderr,它们在进入 main 时就准备好了,可以直接使用,与之对应的文件描述符分别是 STDIN_FILENO / STDOUT_FILENO / STDERR_FILENO.除…
c语言中常用的I/O函数 最常用的字符串的标准I/O函数有getchar().putchar().gets().puts().scanf().printf().fputs().fgets().getc().putc().fscanf().fprintf().fseek().ftell().fread().fwrite()等. getchar()和putchar() 他们是专门为字符I/O设计的一对C函数,getchar()函数没有参数,它返回来自输入设备的下一个字符.以下输入输出代码是等效的.这…
文件打开关闭函数:fopen()和fclose() <FILE *fopen(char *filename, char *mode)| int fclose(FILE *fp)> 字符读写函数 :fgetc()和fputc()<int fgetc(FILE *fp)|int fputc(int ch, file *fp)> 字符串读写函数:fgets()和fputs()<char *fgets(char *str, int num, FILE *fp)| int fputs(…
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4257272.html 第十一章 高级指针话题 第十二章 预处理器 第十三章 输入/输出函数 第十一章            高级指针话题 指向指针的指针 ): i = 10; *pi = 10;…
PHP通过mail()或Socket发邮件 1.PHP中发送邮件的方法 PHP发送邮件是“非常的简单” 因为他提供了mail()函数直接发送,但这也继 register globals 成为了对初学者的第二大杀手. (1)通过mail()函数发送邮件 (2)通过socket通讯,使用SMTP传输 2.mail()函数的使用 mail() 函数允许您从脚本中直接发送电子邮件. 如果邮件的投递被成功地接收,则返回 true,否则返回 false. mail(to,subject,message,he…
一.I/O流操作一般流程: (1)为每一个要打开的文件定义一个FILE *类型的指针变量,这个指针变量将指向I/O流使用的FILE结构体. (2)使用fopen函数打开I/O流.要打开一个I/O流,必须指定要打开的文件(或设备)以及打开后的访问方式(如:只读.只写或读写等). (3)按照需要的操作读写文件. (4)最后,使用fclose函数关闭该I/O流. 在标准流(stdin.stdout和stderr)上进行I/O操作不需要打开和关闭.(stdin.stdout和stderr其实也是执行FI…
---恢复内容开始--- 又看了一遍文件的知识点了,断断续续已经看了2-3遍,也就这次花了点时间做了一下总结,以后我想都不会再去翻书了,哈哈. 1. 基于缓冲区的文件操作2. 打开关闭文件3. 单个字符读写4. 文件指针定位5. 字符串读写6. 块读块写7. 格式化读写一. 读写操作都要经过一个缓冲区, 满足一定条件后再进行读入和写入.标准的输入以及输出, 内部为基于缓冲区的文件操作.标准输入: stdin标准输出: stdout标准错误: stderr清理缓冲区: fflush(); 二. 打…
一.文件的分类 1.文本文件:打开之后能看得懂的文件 2.二进制文件:打开之后看不懂,类似乱码之类的文件(视频,音频打开之后,能看.听,是应为电脑中装有播放器,播放器中含有解码器). 二.操作文件的步骤和方式 操作步骤: 1.打开文件 2.操作文件 3.关闭文件 操作方式: 文件流:操作文件就像水流一样,将一个大的文件分成一段一段的流过去. 好处:分段操作,避免出现阻塞,卡死的发生. 三.操作文件的函数 1.fopen函数: /* fopen函数: fopen(路径,操作方式); fopen("…
//捕获fopen调用中的错误 #include <stdio.h> #include <errno.h> #include <string.h> #define MYFILE "missing.txt" int main(  ) { FILE* fin; fin=fopen( MYFILE,"r" ); if( fin==(FILE*)NULL ) { printf( "%s: %s\n",MYFILE,st…
原文网址:http://www.cnblogs.com/dolphin0520/archive/2011/10/07/2200454.html C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面说一下文件的读写操作.文件的读写操作主要有4种,字符读写.字符串读写.块读写以及格式化读写. 一.字符读写 字符读写主要使用两个函数fputc和fgetc,两个函数的原型是: int fputc(int ch,FILE *fp);若写入成功则返回写入的字符,否则返回-1 int fgetc(FI…
1.C语言FILE类,在stdio.h头文件中,FILE类是一个结构体:定义如下: 通过typedef定义了 文件类型 的别名: “FILE”,这样以后需要读写文件的时候直接定义FILE就行了.   虽然看不懂参数具体表示的是什么,但是凭借这我们使用电脑的经验不难知道,FILE的属性无非就是文件名,修改时间,权限等一些信息 比如我们查看linux的文件的属性: 对这个属性解释如下: (1) -rwxr-xr-x 表示用户读取该文件的权限. (2) 1 表示该文件的连接数,即有几个文件指向这个文件…
本篇博客主要记录一个完整的TCP客户/服务器实例的编写,以及从这个实例中引发的对僵死进程的处理等问题. 1. TCP客户/服务器功能需求 本实例完成以下功能: (1) 客户从标准输入读入一行文本,并写给服务器 (2) 服务器从网络输入中读入这行文本,并回射给客户 (3) 客户从网路输入读入这行回射文本,并显示在标准输入 需要用到的函数: (1) 套接字编程基本函数(socket,bind,listen,accept,connect,close等),完成套接字编程 (2) 标准I/O库函数fput…
输入 gets() 函数 : 1.gets() 从标准输入设备读取字符串,以回车结束读取,使用'\0'结尾,回车符'\n'被舍弃没有遗留在缓冲区. 2.可以用来输入带空格的字符串. 3.可以无限读取,不会判断上限,因此使用gets不安全,可能会造成溢出.   fgets() 和 fputs() 函数 : 1.fgets函数的第2个参数指明了读入字符的最大数量.如果该参数是n, 那么fgets会读入n-1 个字符,或者读到第一个换行符为止 2.如果fgets函数读到一个换行符, 会储存在字符串中…
一.基本概念1.文件分类 普通文件:存放在硬盘中的文件 设备文件:屏幕.键盘等特殊文件 文本文件:ASCII文件,每个字节存放一个字符的ASCII码,打开文件看到的是文本信息 二进制文件:数据按其在内存中的存储形式原样存放,打开文件看到的是乱码 2.文件缓冲区(了解) ANSI C(标准C语言库函数)标准采用“缓冲文件系统”处理数据文件. 写文件(设备文件除外),并不会直接写到文件中,会先放在缓冲区,默认情况下,关闭文件或缓冲区满了才写到文件. 如果没有关闭文件,缓冲区也没有满,可以通过程序正常…
文件的操作就两种:读和写 读:把文件中的内容读入到程序中,然后根据自己的项目需求把文件的数据进行相关的处理. 写:就是将程序中的数据,写入到文件中,去更新文件. 这么两种操作归到代码中就是这两种函数:一组是写函数,一组是读函数. 读和写是成对出现的,fwrite和fread是一对,fputs和fgets 是一对.这里所说的一对的意思是:一对中的读和写对文件的操作方式是一样的.一般成对去使用读函数和写函数. fwrite就是往文件中写入数据, 参数一:是要写入文件的数据首地址,往文件写入 的数据,…
前言:为什么需要第二篇文件操作?因为第一篇的知识根本不足以支撑基本的需求.下面来一一分析. 一.Python文件操作的特点 首先来类比一下,作为高级编程语言的始祖,C语言如何对文件进行操作? 字符(串):fputc和fgetc,fputs和fgets,fwrite和fread,fprintf和fscanf都可以 整型:fputc和fgetc(-128~127范围内),rwrite和fread,fprintf和fscanf 数组(基本类型):for循环内的fputc和fgetc,for循环内的rw…
文件操作 fopen与fclose fread与fwrite fseek fputs与fgets fscanf与fprintf fopen与fclose #include<stdio.h> int main() { FILE *fp; char c; fp = fopen("1.txt", "r"); if (NULL == fp) { perror("fopen"); //perror()函数打印str(字符串)和一个相应的执行定义…
clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fgets() 从一个流获取一串字符 fopen() 打开一个文件 fprintf() 打印格式化的输出到一个文件 fputc() 写一个字符到一个文件 fputs() 写一个字符串到一个文件 frea…
Note For C Linux下C编程基础(gcc/gdb/make使用) 一.vi学习 二.初探emacs 三.gcc编译器 3.1 gcc所支持后缀名解释 后缀名 解释 后缀名 解释 .c C原始程序 .s/.S 汇编语言原始程序 .C/.cc /.cxx C++原始程序 .h 预处理文件(头文件) .m Objective-C原始程序 .o 目标文件 .i 已经预处理过的C原始程序 .a/.so 编译后库文件 .ii 已经预处理过的C++原始程序 3.2 gcc编译流程 A.预处理(pr…
getchar() 和 putchar() getchar() 函数不带任何参数,它从输入队列中返回下一个字符 下面的语句读取下一个字符输入,并把该字符的值赋给变量 ch ch =getchar(); 相当于 scanf("%c", &ch); putchar() 函数打印它的参数 下面的语句把之前赋给 ch 的值作为字符打印出来 putchar(ch); 相当于 printf("%c", ch); getchar() 和 putchar() 不需要转换说明…
cppreference.com -> 标准 C I/O ->详细说明 标准 C I/O clearerr 语法: #include <stdio.h> void clearerr( FILE *stream ); clearerr函数重置错误标记和给出的流的EOF指针. 当发生错误时,你可以使用perror()判断实际上发生了何种错误. 相关主题: feof(), ferror(), 和perror(). fclose 语法: #include <stdio.h> i…
函数说明:fsockopen — 打开一个网络连接或者一个Unix套接字连接 语法: resource fsockopen ( string $hostname [, int $port = -1 [, int &$errno [, string &$errstr [, float $timeout = ini_get("default_socket_timeout") ]]]] ) 参数: hostname 如果安装了OpenSSL,那么你也许应该在你的主机名地址前面…
标准I/O函数 标准标准I/O函数有两个优点: 标准I/O函数具有良好的移植性 标准I/O函数可以利用缓冲提高性能 关于移植性无需过多解释,不仅是I/O函数,所有标准函数都具有良好的移植性.因为,为了支持所有操作系统(编译器),这些函数都是按照ANSIC标准定义的.当然,这并不局限于网络编程,而是适用于所有编程领域 接下来讨论标准I/O函数的第二个优点,使用标准I/O函数时会得到额外的缓冲支持,这种表达方式也许会带来一些混乱,因为之前讲过,创建套接字时操作系统会准备I/O缓冲.造成更大混乱之前,…