zoukankan      html  css  js  c++  java
  • 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 ";   

      puts(string);   

    return 0;   }

     说明:   puts 和 printf 的用法一样,puts()函数的作用与语句“printf("%s ",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( );   
    putchar(a);putchar(' ');   
    putc  putchar
    har(b);putchar(' ');   
    putchar(c);putchar(' ');   
    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字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('')才结束转换,并将结果返回。若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 ",strtod(a,NULL));   

    printf("b=%lf ",strtod(b,&endptr));   

    printf("endptr=%s ",endptr);   

    printf("c=%lf ",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 ",str1);   }   C++:   #include<iostream>   using namespace std;   int main()   {   char str[100];   gets(str);   cout<<str<<endl;   return 0;   }   gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加''字符。其调用格式为:   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


     

  • 相关阅读:
    快速排序和二分查找
    机器学习实战6-线性回归
    机器学习实战5-AdaBoost
    机器学习实战4-SVM
    机器学习实战3-贝叶斯分类
    机器学习实战2-决策树
    win10下caffe安装与mnist测试实验注意点
    机器学习实战1-K均值
    scikit-learn中机器学习模型比较(逻辑回归与KNN)
    结合前向后向算法求隐马尔科夫模型观测序列O的概率
  • 原文地址:https://www.cnblogs.com/fickleness/p/3148912.html
Copyright © 2011-2022 走看看