转载自度娘文库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');