C++控制台读取和输出函数
c中puts()函数
用来向标准输出设备(屏幕)写字符串并换行,其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)。
功 能: 送一字符串到流stdout中
用 法: int puts(char *string);
程序例: #include <stdio.h>
int main(void)
{ char string[] = "This is an example output string\n";
puts(string);
return 0; }
说明: puts 和 printf 的用法一样,puts()函数的作用与语句“printf("%s\n",s);的作用相同。注意:puts在输出字符串后回车符。 puts()函数只能输出字符串,不能数值或进行格式变换。 可以将字符串直接写入puts()函数中,输出至屏幕。如:puts("Hello,Turo C2.0:");
putchar()函数,输出单个字符,不自动换行
int main(void)
{ char a,b,c;
a='T',b='M',c='D';
putchar(a); putchar(b);putchar(c);putchar(\n);
putchar(a);putchar('\n');
putc putchar
har(b);putchar('\n');
putchar(c);putchar('\n');
return 0; }
输出结果为: TMD T M D
ctype.h文件中的处理字符串的函数
1 字符测试函数
1> 函数原型均为int isxxxx(int)
2> 参数为int, 任何实参均被提升成整型
3> 只能正确处理处于[0, 127]之间的值
2 字符映射函数
1> 函数原型为int toxxxx(int)
2> 对参数进行检测, 若符合范围则转换, 否则不变
int tolower(int); 'A'~'Z' ==> 'a'~'z'
int toupper(int); 'a'~'z' ==> 'A'~'Z'
strtod strtod(将字符串转换成浮点数)
相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include<stdlib.h>
定义函数 double strtod(const char *nptr,char **endptr);
函数说明 strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
返回值 返回转换后的浮点型数。 附加说明 参考atof()。
范例 #include<stdlib.h> main()
{ char *endptr; char a[]="12345.6789";
char b[]="1234.567qwer"; char c[]="-232.23e4";
printf("a=%lf\n",strtod(a,NULL));
printf("b=%lf\n",strtod(b,&endptr));
printf("endptr=%s\n",endptr);
printf("c=%lf\n",strtod(c,NULL)); }
执行
a=12345.678900 b=1234.567000 endptr=qwer c=-2322300.000000 l
inux c function()中关于strtod的范例有误
strchr
原型:extern char *strchr(const char *s,char c); const char *strchr(const char* _Str,int _Val) char *strchr(char* _Str,int _Ch) 头文件:#include <string.h>
功能:查找字符串s中首次出现字符c的位置 说明:返回首次出现c的位置的指针,如果s中不存在c则返回NULL。
C语言函数strrchr
函数简介
函数名称: strrchr 函数原型:char *strrchr(char *str, char c); 所属库: string.h 函数功能:查找一个字符c在另一个字符串str中末次出现的位置(也就是从str的右侧开始查找字符c首次出现的位置),并返回从字符串中的这个位置起,一直到字符串结束的所有字符。如果未能找到指定字符,那么函数将返回NULL。
strcspn 原型:size_t strcspn(const char *s1,const char *s2); 相关头文件:#include <string.h> 功能:顺序在字符串s1中搜寻与s2中字符的第一个相同字符,返回这个字符在S1中第一次出现的位置。
strpbrk 用法:#include <string.h> 功能:依次检验字符串s1中的字符,当被检验字符在字符串s2中也包含时,则停止检验,并返回该字符位置,空字符NULL不包括在内。 说明:返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。 用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。
strpbrk 用法:#include <string.h> 功能:依次检验字符串s1中的字符,当被检验字符在字符串s2中也包含时,则停止检验,并返回该字符位置,空字符NULL不包括在内。 说明:返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。 用途:在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。
gets
【1】函数:gets(字符指针)
【2】头文件:stdio.h(c中),c++不需包含此头文件
【3】原型:char*gets(char*buffer);
【4】功能:从stdin流中读取字符串,直至接受到换行符或EOF时停止,并将读取的结果存放在buffer指针所指向的字符数组中。换行符不作为读取串的内容,读取的换行符被转换为null值,并由此来结束字符串。
【5】返回值:读入成功,返回与参数buffer相同的指针;读入过程中遇到EOF(End-of-File)或发生错误,返回NULL指针。所以在遇到返回值为NULL的情况,要用ferror或feof函数检查是发生错误还是遇到EOF。
【6】注意:本函数可以无限读取,不会判断上限,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。如果溢出,多出来的字符将被写入到堆栈中,这就覆盖了堆栈原先的内容,破坏一个或多个不相关变量的值,为了避免这种情况,我们可以用fgets()来替换gets()。这个事实导致gets函数只适用于玩具程序。在V7的手册(1979年)中说明:为了向后兼容,gets删除换行符,gets并不将换行符存入缓冲区。
【7】示例: C:#include "stdio.h" 这个头文件包涵gets函数 void main() { char str1[5]; gets(str1); printf("%s\n",str1); } C++: #include<iostream> using namespace std; int main() { char str[100]; gets(str); cout<<str<<endl; return 0; } gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\0'字符。其调用格式为: gets(s); 其中s为字符串变量(字符串数组名或字符串指针)。 gets(s)函数与 scanf("%s",&s) 相似,但不完全相同,使用scanf("%s",&s) 函数输入字符串时存在一个问题,就是如果输入了空格会认为字符串结束,空格后的字符将作为下一个输入项处理,但gets()函数将接收输入的整个字符串直到遇到换行为止。 说明: gets(s) 函数中的变量s为一字符串或字符指针。如果为单个字符,编译连接不会有错误,但运行后会出现”Null pointer asignment"的错误。
【8】宽字符版本,当使用unicode宽字符文本时,使用这个函数 _getws();
getchar
从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。
stat结构体
stat 结构定义于:/usr/include/sys/stat.h 文件中 struct stat finfo; stat( sFileName, &finfo ); int size = finfo. st_size; struct stat { mode_t st_mode; //文件对应的模式,文件,目录等 ino_t st_ino; //i-node节点号 dev_t st_dev; //设备号码 dev_t st_rdev; //特殊设备号码 nlink_t st_nlink; //文件的连接数 uid_t st_uid; //文件所有者 gid_t st_gid; //文件所有者对应的组 off_t st_size; //普通文件,对应的文件字节数 time_t st_atime; //文件最后被访问的时间 time_t st_mtime; //文件内容最后被修改的时间 time_t st_ctime; //文件状态(属性)改变时间 blksize_t st_blksize; //文件内容对应的块大小 blkcnt_t st_blocks; //文件内容对应的块数量 };
函数名: stat() 功 能: 得到文件的信息,将其保存在buf结构中,buf的地址以参数形式传递给stat。 用 法: int _stat(const char *path,struct _stat *buffer)
perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到 标 准 设备 (stderr) 。参数 s 所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量error 的值来决定要输出的字符串。 在库函数中有个error变量,每个error值对应着以字符串表示的错误类型。当你调用"某些"函数出错时,该函数已经重新设置了error的值。perror函数只是将你输入的一些信息和现在的error所对应的错误一起输出。
文件操作:
#include <stdio.h>
int main(void)
{ FILE *fp ;
fp = fopen( "/root/noexitfile", "r+" );
if ( NULL == fp )
{ perror("/root/noexitfile");
}
return 0;
}
运行结果
[root@localhost io]# gcc perror.c
[root@localhost io]# ./a.out
/root/noexitfile: No such file or directory
C++控制台读取和输出函数的更多相关文章
- C# 版本的冒泡排序,包括该死的控制台读取
期末出成绩了,绩点被数分拉下来太多,虽然我很想不在意,但是还是受不了 学了两天的JAVA了,无爱,还是喜欢C#,喜欢VS 一直学一下控制台读取来着,但是C#控制台读取真的很麻烦 using Syste ...
- 从控制台读取password - C#
Tip : 从控制台读取password 语言: C# ______________________________________________________________ 在登陆Lin ...
- C语言之控制台读取上下左右方向键指令
首先,可以检测任何按键键值 // 首先,检测任何按键的代码 #include<stdio.h> #include<conio.h> int main() { char ch; ...
- 快学Scala 第十四课 (读取行,读取字符, 控制台读取)
读取行: import scala.io.Source object FileReader { def main(args: Array[String]): Unit = { val source = ...
- asp.net core-5.控制台读取json文件
1,创建控制台应用程序,应用using Microsoft.Extensions.Configuration; 2,新建一个app.json文件 然后修改app.json的属性 3,生成项目,可以看到 ...
- java从控制台读取数据的方式
1. Scanner sc = new Scanner(System.in); String s = sc.readLine(); 2. BufferReader br = new BufferRea ...
- NetCore 控制台读取配置文件
依赖: Microsoft.Extensions.Configuration Microsoft.Extensions.Configuration.Binder Microsoft.Extension ...
- C#编程:从控制台读取数字的两种方式
有时需要从控制台输入数字,就用到前面介绍的内容,数据转换,如:int num=int.Pares(Console.ReadLine()); int num=Convert.ToInt32(Consol ...
- PAT—优化Java从控制台读取信息的速度
PAT对Scanner类很不友好,会花费大量时间,导致运行时间超时.可采用下列代码优化时间 BufferedReader bf = new BufferedReader(new InputStream ...
随机推荐
- 用Canvas为网页加入动态背景
近期刚刚接到为微信公众帐号"玩转三里屯"制作首页的任务. 考虑到页面仅仅在手机中浏览.并且手机对canvas的支持又很好,所以打算使用canvas做点不一样的动画. 首先来看下效果 ...
- 【C++】static小结
1.局部静态变量 (1)生存期:存储在静态数据区,本模块运行结束不会销毁,程序结束时才销毁. (2)初始化:当且仅当本模块初次运行时初始化. 2.外部静态变量/静态函数 限制全局变量的作用域为本文件. ...
- 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程
简述C#中IO的应用 在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...
- Android中判断网络连接是否可用及监控网络状态
Android中判断网络连接是否可用及监控网络状态 作者: 字体:[增加 减小] 类型:转载 获取网络信息需要在AndroidManifest.xml文件中加入相应的权限,接下来详细介绍Android ...
- gradle平级项目引用
一.准备1. 新建一个gradle项目cc-core2. 新建一个gradle项目cc-util 二.场景项目cc-core引用项目cc-util 三.配置1. 项目cc-util被引用的项目什么都不 ...
- Spark与Pandas中DataFrame对比
Pandas Spark 工作方式 单机single machine tool,没有并行机制parallelism不支持Hadoop,处理大量数据有瓶颈 分布式并行计算框架,内建并行机制paral ...
- window 环境 Composer 安装 thinkphp5
参考链接:https://www.kancloud.cn/thinkphp/thinkphp5_quickstart/478269 在 Windows 中,你需要下载并运行 Composer-Setu ...
- java中如何设置下载文件
如果想要设置某一url为下载文件的方法如下 需要设置文件响应类型,使用response.setContentType,比如jpeg格式的图片.如果想要访问该页面时出现下载保存的窗口,使用respons ...
- Ubuntu和centos下查看包的安装路径
安装包后,如何查看安装的具体路径? Ubuntu下: dpkg -L <包名> CentOS下: rpm -ql <包名> 助记: l为list的首字母. q为query ...
- (一)jQuery EasyUI 的EasyLoader载入原理
1.第一次看了官网的demo.引用的是EasyLoader.js文件,而不是引用jquery.easyui.min.js文件,我就有疑问了,百度一下. jQuery EasyUI是一款基于JQuery ...