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

Linux下读终端

2018年02月11日 ⁄ 综合 ⁄ 共 606字 ⁄ 字号 评论关闭
2014年11月4日19:38:01
个人总结第一篇:

#include <stdio.h>

#include <string.h>
 
int main()
{
    int len;
    char buffer[1024];
    bzero(buffer,sizeof(buffer));
    printf("Please input words\n");
    //scanf("%s",buffer); // 阻塞,不读‘\n’,‘\n’会放在缓冲区,如果下一次直接调用fgets会出错。
    //gets(buffer);        // 阻塞,'\n' 转为'\0'存在buffer中
    //read(stdin,buffer,10);//从终端读10个字节(测试中并没有阻塞终端)
    fgets(buffer,10,stdin);//阻塞终端,读到了'\n',加'\0'返回。读到9个字节也返回,第10个字节存放'\0'。读到文件末尾也返回。可用feof检测是否读到文件末尾
    //fread(buffer,10,1,stdin);//阻塞终端,只有读到10个字节才返回,否则阻塞等待。把'\n'当作一个字节来读
    len = strlen(buffer);
    printf("%s\n",buffer);
    printf("Len:%d\n",len);
    printf("Test end\n");
    return 0;
}

scanf,gets两个函数慎用!

抱歉!评论已关闭.