fgets从键盘输入(键盘里fs键是哪个)

http://www.itjxue.com  2023-01-27 03:27  来源:未知  点击次数: 

怎样从键盘中输入一个字符串,然后将它赋值给一个字符指针??

可以用gets和fgets两个方法得到键盘输入,并且也支持输入中文字符

但是gets方法不太安全,特别在linux下会报警报

由于gets()无法知道字符串s的大小,必须遇到换行字符或文件尾才会结束输入,因此容易造成缓冲溢出的安全性问题。建议使用fgets()取代。

char

s[80];

fputs(fgets(s,80,stdin),stdout);

}

执行

this

is

a

test

/*输入*/

this

is

a

test

/*输出*/

getchar

是获得单个字符,不过你可以通过循环得到字符串

for(i=0;i5;i++)

{

c=getchar();

putchar(c);//输出

}

简答题:fgetc,fgets,fscanf,fread有什么样的区别?

首先这四个函数都是从文件或者输入设备读取数据,它们之间的主要区别如下:

一、fgetc

这个函数主要用于从文件或者输入设备逐个读取字符并通过返回值返回。一般如果是从文件读取,这个文件得提前以文本模式打开。

二、fgets

这个函数主要用于从文件或者输入设备读取一行字符,如果从文件读取也要求以文本模式打开文件。这个函数相对gets要安全,因为它可以通过第二个参数指定最大能读取的字符数,防止溢出。同时这个函数会读入换行符,它一般可以和fputs函数配合使用,fputs函数输出不会自动换行。fgets也可以从键盘输入字符,通过第三个参数指定读取位置,stdin表示从键盘,文件指针表示从文件。

三、fscanf

这个函数从文件中以格式化形式读取,也是要以文本形式打开文件,具体的用法和scanf一样。文件得是文本形式,二进制形式一般是会读取出错。

四、fread

fread函数主要用于以二进制模式从文件中读取数据,它一般和fwrite函数配合使用。主要用于结构体类型变量的读取。它要求文件先以二进制模式打开,如果不指定二进制模式在Windows系统可能出错,因为Windows的换行是两个字符,是换行和回车两个字符转化而来。所以使用这个函数最好以二进制打开。

C语言 fgets(text,sizeof(str1),stdin) stdin是什么?

stdin指的是标准输入,大多数情况下就是键盘

fgets(text,sizeof(str1),stdin) 就是从键盘输入sizeof(str1)这个长度的字符串(包括'\0'),并保存到text这个地址空间

c语言中fgets的返回值类型??

1、如果成功,该函数返回相同的 str 参数。如果到达文件末尾或者没有读取到任何字符,str 的内容保持不变,并返回一个空指针。如果发生错误,返回一个空指针。

在读字符时遇到end-of-file,则eof指示器被设置,如果还没读入任何字符就遇到这种情况,则stream保持原来的内容,返回NULL;

2、如果发生读入错误,error指示器被设置,返回NULL,stream的值可能被改变。

如果文件中的该行,不足n-1个字符,则读完该行就结束。如若该行(包括最后一个换行符)的字符数超过n-1,则fgets只返回一个不完整的行,但是,缓冲区总是以NULL字符结尾,对fgets的下一次调用会继续读该行。

函数成功将返回stream,失败或读到文件结尾返回NULL。因此不能直接通过fgets的返回值来判断函数是否是出错而终止的,应该借助feof函数或者ferror函数来判断。

扩展资料

函数使用:

1、同时可以用作键盘输入:fgets(key,n,stdin)且还必须:key[strlen(key)]='\0'或者key[n-1]='\0'

2、还有种程序经常使用的方法:key[strlen(key-1)]=0x00;

3、与gets相比使用这个好处是:读取指定大小的数据,避免gets函数从stdin接收字符串而不检查它所复制的缓存的容积导致的缓存溢出问题。

参考资料来源:百度百科-fgets

(责任编辑:IT教学网)

更多

推荐网络创业文章