❶ c语言中fputs遇到空字符停止输出所以字符
c语言中输出字符串的函数有printf("%s") puts() fputs()等,字符串中可以是任意的字符,包括空格在内,无特殊处理,如: char str[]="hello world" ;printf("%s\n", str );puts(str);fputs(str,stdin); 但在输入带有空格的字符串时,只能用gets()或fgets(),而不能用scanf("%s") ,因为scanf("%s")输入字符串时,遇到空格就结束了输入。而gets()函数是以回车为结束符的输入函数,可以输入带空格的字符串。
❷ c语言fputs函数问题
fputs是一种函数,具有的功能是向指定的文件写入一个字符串(不自动写入字符串结束标记符'\0')。成功写入一个字符串后,文件的位置指针会自动后移,函数返回为一个非负整数;否则返回EOF(符号常量,其值为-1)。
❸ c语言中fgets 、fputs、fread、fscanf、fseek的区别和作用
fread:是读取数据
fwrite:是写入数据
1.函数功能
用来读写一个数据块。
2.一般调用形式
fread(buffer,size,count,fp);
fwrite(buffer,size,count,fp);
3.说明
(1)buffer:是一个指针,对fread来说,它是读入数据的存放地址。对fwrite来说,是要输出数据的地址。
(2)size:要读写的字节数;
(3)count:要进行读写多少个size字节的数据项;
(4)fp:文件型指针。
注意:1
完成次写操(fwrite())作后必须关闭流(fclose());
2
完成一次读操作(fread())后,如果没有关闭流(fclose()),则指针(file
*
fp)自动向后移动前一次读写的长度,不关闭流继续下一次读操作则接着上次的输出继续输出;
3
fprintf()
:
按格式输入到流,其原型是int
fprintf(file
*stream,
const
char
*format[,
argument,
...]);其用法和printf()相同,不过不是写到控制台,而是写到流罢了。注意的是返回值为此次操作写入到文件的字节数。如int
c
=
fprintf(fp,
"%s
%s
%d
%f",
str1,str2,
a,
b)
;str1:10字节;str2:
10字节;a:2字节;b:8字节,c为33,因为写入时不同的数据间自动加入一个空格。
4.fscanf
和
scanf
相似
:当能正常读入数据时,
fscanf
返回读入数据的个数,否则返回
eof
。
❹ C语言文件操作fputs用法问题
把写文件代码全弄上来才能知道哪里错了。看样子buf应该是二维数组,那么写一行应该是fputs(buf[x],fptr);这样的格式,其中x是数组行下标。以上只是猜测,不见得说得一定准确。
❺ c语言使用fputs函数写入无效
文件指针的问题,一般来说,同时读写一个文件并不可取。硬要如此的话,使用fseek定位好写入位置后再写入
❻ C语言中fgets和fputs的问题......
//原因是:你似乎对feof有一定的误解
//当IO流读到文件最后一个字符的时候是不会设置EOF位的
//这时调用feof,会返回false
//EOF设置当且仅当读取完最后一个字符后,再继续读取,这时相当于调用fgetc()
//获取不存在的字符,返回EOF,设置EOF位置
//然后调用feof,会返回true
//理论上的fgets工作原理
char*fgets(constchar*str,intnum,FILE*fp)
{
if(str==NULL||num<=0||fp==NULL)
returnNULL;
size_tindex=0;
intch;
while(index<num-1)
{
ch=getc(fp);
if(ch==EOF)
{
if(index==0)
returnNULL;
break;
}
else
{
str[index++]=ch;
if(ch==' ')
break;
}
}
str[index]='