现在的位置: 首页 > 综合 > 正文

字符串输入函数

2014年01月23日 ⁄ 综合 ⁄ 共 1093字 ⁄ 字号 评论关闭

转载自度娘文库http://wenku.baidu.com/view/217842e8f8c75fbfc77db26f.html

1.getchar();

这个函数与fgetc(stdin)等价,用于每次从键盘读入一个字符

      

char c[200];

       int i;

       for(i=0;(c[i]=getchar())!='\n';i++)

       printf("%c",c[i]);

       c[i]='\0';    /*如果这里在字符串后加入’\0’则后面将输出不可预料的数据,’\0’是字符串的结束标记,如果没有’\0’则表示字符串没有结束*/

       printf("\n%s\n",c);

2.fgetc(FILE*)

这个函数返回一个int值,不是char,如果文件结束,fgetc()将返回一个特殊的标记EOF,它并不是char,用int型输出是‘-1’,用char型输出是两个空格,不能用其他类型输出,执行错误

int i;

       FILE* f;

       f=fopen("data.txt","r");

       i=fgetc(f);

       while(i!=EOF)

       {

              printf("%c",(char)i);

              i=fgetc(f);

       };

       printf("%d",i);

       printf("%c",i);

       printf("%c",'c');

       printf("\n");

3.fgetc(stdin)

fgetc(FILE*)的标准输入版

char c[200];

       int i;

       for(i=0;(c[i]=fgetc(stdin))!='\n';i++);

              c[i]='\0';

       printf("%s\n",c);

 

再次强调这个函数的返回值是int

4.fgets(char* , int capacity, FILE*)

第一个参数为指向字符数组的字符指针,第二个参数表示所指数组的最大容量,第三个为文件指针。这个函数用于文件中读入一整行数据,读入不超过capacity-1个字符,然后在字符末尾自动加上’\o’,一旦函数读取到’\n’,函数自动停止工作,并且’\n’是字符数组的最后一个有效字符,除非文件不是以’\n’结尾的

char c[200];

       int i;

       FILE* f;

       f=fopen("data.txt","r");

       fgets(c,200,f);

       printf("%s",c);

       printf("%c\n",'c');

 

5.gets(char*)

fgets()的标准版,但是此函数存在缓冲区溢出漏洞(即它不管数组的大小,不论你输入多少它都接受,但是会出现执行错误),不推荐使用

char c[10];

       int i;

       gets(c);

       printf("%s",c);

       printf("%c\n",'c');

抱歉!评论已关闭.