C语言学习笔记 | 您所在的位置:网站首页 › c读取一行数字的函数是 › C语言学习笔记 |
在从控制台读取字符的时候,常用的函数有scanf()、 gets()、fgets()这几个函数,那么这几个函数有什么区别和联系呢? 1、scanf()函数sacnf() 函数用来从键盘读取字符串,下面通过一个简单的例子来看一下它的用法。 #define LEN 20 int main() { char str[LEN]; printf("enter a string:\r\n"); scanf("%s",str); printf("string is:\r\n"); printf("%s",str); system("pause"); return 0; } 提示输入一个字符串,然后将输入的字符串打印出来。测试结果如下: 一般scanf()函数和printf()函数一起使用。 2、gets()函数gets() 函数也是用来从键盘读取字符串,下面通过一个简单的例子来看一下它的用法。 #define LEN 20 int main() { char str[LEN]; puts("enter a string:"); gets(str); puts("string is:"); puts(str); system("pause"); return 0; }测试结果如下: 通过观察代码和输出的字符串可以发现,在代码中没有输出换行符,但是打印的字符串自动换行了,说明使用puts()函数输出的时候,自动在字符串的末尾加上的换行符。 一般gets()函数和puts()函数一起使用。 3、fgets()函数fgets() 函数也是用来从键盘读取字符串,但是它在读取字符串的时候,还需要设置参数。下面通过一个简单的例子来看一下它的用法。 #define LEN 20 int main() { char str[LEN]; fputs("enter a string:",stdout); fgets(str,LEN,stdin); fputs("string is:",stdout); fputs(str,stdout); system("pause"); return 0; }输出结果如下: 在读取字符串的时候,fgets()函数里面有三个参数,第一个是要存储的字符串位置,第二是要读取字符串的最大长度。第三个是从哪个设备输入。 stdin 表示标准的输入设备,也就是键盘。stdout表示标准的输出设备,也就是显示器。 通过第三个参数可以看出,fgets函数不仅可以从键盘读取数据,也可以从其他地方读取数据,那么将代码改为从文件中读取数据试试。 #define LEN 20 int main() { char str[LEN]; FILE *in; in = fopen("abc.txt","r"); fputs("read a string:\r\n",stdout); fgets(str,LEN,in); fputs("string is:\r\n",stdout); fputs(str,stdout); system("pause"); return 0; } 首先打开一个文本文档,然后使用fgets()函数从打开的文档中读取数据,最后将数据打印出来。 这里通过追加的方式打开记事本,然后读取键盘上的内容,通过fputs函数,写入到记事本中去。 通过上面的例子可以总结出这三个字符输入函数的特点: scanf()函数比较适合于用来读取单词,遇到空白字符时就自动结束。gets()函数比较适合读取字符串,它是遇到回车换行符才会结束。fgets()函数是一个通用的输入函数,它可以从控制台以外的设备上读取字符串,功能更加强大,但是在使用的时候传入的参数比较多。 |
CopyRight 2018-2019 实验室设备网 版权所有 |