c语言fputc
A. c语言fputc不是写字符吗,为什么格式是fputc (int c,FILE*fp)
函数名称:写字符文件函数fputc()
函数格式:int fputc (int c, File *fp)
参数解释:fp为文件指针,它的值是执行fopen()打开文件时获得的。
c为输出的字符量。
虽然函数被定义为整型数,但仅用其低八位。
返回值:在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF(-1)。当正确写入一个字符或一个字节的数据后,文件内部写指针会自动后移一个字节的位置。EOF是在头文件 stdio.h中定义的宏。
B. C语言关于fputc函数的使用。
就是输入一个打出一个。putchar()括号里面的应该填一个字符或者字符数组名,比如a[0]
而10就是换行的ASCII码就是换行。相当于“ “
]
C. c语言中fputc是什么意思
fputc是C语言中的一个函数。功能是将字符ch写到文件指针fp所指向的文件的当前写指针的位置。函数格式:int fputc (int c, FILE *fp)。
在正常调用情况下,函数返回写入文件的字符的ASCII码值,出错时,返回EOF(-1)。当正确写入一个字符或一个字节的数据后,文件内部写指针会自动后移一个字节的位置。EOF是在头文件 stdio.h中定义的宏。
(3)c语言fputc扩展阅读
函数名称:写字符文件函数fputc()
函数格式:int fputc (int c, File *fp)
参数解释:fp为文件指针,值是执行fopen()打开文件时获得的。
c为输出的字符量。
虽然函数被定义为整型数,但仅用其低八位。
D. 函数fputc()的功能是什么
函数fputc()的功能:将字符ch输出到fp所指向的文件中.若成功则返回该字符;否则返回EOF
E. C语言 关于fgetc 函数
fgetc函数的功能:从文件指针stream指向的文件中读取一个字符,读取一个字节后,光标位置后移一个字节。
格式:int fgetc(FILE *stream);
说明:这个函数的返回值,是返回所读取的一个字节。如果读到文件末尾或者读取出错时返回EOF。
示例:
#include<string.h>
#include<stdio.h>
#include<conio.h>
intmain(void)
{
FILE*stream;
charstring[]="Thisisatest";
intch;
/*openafileforupdate*/
stream=fopen("DUMMY.FIL","w+");
/*writeastringintothefile*/
fwrite(string,strlen(string),1,stream);
/*seektothebeginningofthefile*/
fseek(stream,0,SEEK_SET);
do
{
/*readacharfromthefile*/
ch=fgetc(stream);
/*displaythecharacter*/
putch(ch);
}
while(ch!=EOF);
fclose(stream);
return0;
}
F. c语言(VC下) fputc写入失败
出问题的主要原因是,读写切换的时候,需要重新定位(使用fsetpos,fseek,rewind),必要时要使用fflush.
int main(int argc, char* argv[])
{
char infile[80]="in.txt";
char outfile[80]="out.txt";
printf("Hello World!\n");
FILE *in=fopen(infile,"r");
int ch,ch2;
if(!in){
printf("open %s failure!",infile);
getchar();
return -1;
}
FILE *out=fopen(outfile,"w+");
if(!out){
fclose(in);
printf("open %s failure!",outfile);
getchar();
return -2;
}
while(EOF!=(ch=fgetc(in)))
{
if(ftell(out)>0)
{
fseek(out,-1,SEEK_END);
//printf("file pointer position=%d\n",ftell(out));
ch2=fgetc(out);
//printf("file pointer position=%d\n",ftell(out));
//fseek(out,0,SEEK_END);
//printf("filesize=%d\n",ftell(out));
if(ch!=ch2){
fseek(out,0,SEEK_END);
fputc(ch,out);
}
else {
fseek(out,-1,SEEK_END);
fputc(ch,out);
}
}
else fputc(ch,out);
};
fclose(in);
fclose(out);
getchar();
return 0;
}
PS:
错误具体原因,请看VC6的帮助,的相关内容。
VC6帮助:
When the "r+", "w+", or "a+" access type is specified,
both reading and writing are allowed (the file is said to be open for “update”).
However, when you switch between reading and writing, there must be an
intervening fflush, fsetpos, fseek, or rewind
operation. The current position can be specified for the fsetpos or
fseek operation, if desired.
G. c语言的fputc(c,fp)如何用
仔细查看你的循环语句内部的指针
H. C语言fputc函数总出现乱码
你计算数列的各项的时候有问题,'1' 的ASCII码是49,所以两个相加就是 98,而这已经是字符 b 的ASCII码了,所以修改如下
#include <stdio.h>
#include <stdlib.h>
#define n 10
int main(void)
{
FILE *fp;
int i;
int a1=1,a2=1,a3;
if((fp=fopen("testdata.txt","w"))==NULL)
{ printf("Open fail.\n"); exit(1); }
fprintf(fp,"%d ",a1); fprintf(fp,"%d ",a2);
for(i=3;i<=n;i++)
{
a3=a1+a2;
fprintf(fp,"%d ",a3);
a1=a2; a2=a3;
}
fclose(fp);
system("pause");
return 0;
}
I. c语言中fgetc和getc与fputc和putc的区别是什么
c语言中fgetc和getc与fputc和putc的区别如下:
fgetc是从数据流中取一个字符,比如从一个打开的文件中取一个字符
fputc是将一个字符送入到一个数据流中,比如王一个打开的文件中写入一个字符
getc是从键盘中获取一个字符
putc是往屏幕送一个字符
J. C语言对文件操作,用fputs函数不能把字符串写入文件
读写一个字符数据
经过前面的学习,我们学习了fread()、fwrite()函数的操作,这两个函数都是对一段“内存块”进行读写操作。那么,C语言还提供了fgetc()、fputc()函数,对文件中的一个字符进行读写操作。这些函数的定义如下:
int fgetc(FILE *stream);
函数说明:从stream文件指针所指向的文件读取1个字符,通过函数的返回值返回。例如:
char c = fgetc(fp);
就是从fp指向的文件,读取1个字符的数据,通过函数返回值,设置给字符变量c。
int fputc(int c, FILE *stream);
函数说明:把参数c表示的字符,写入stream文件指针所指向的文件。例如:
char c = 'M';
fputc(c, fp);
就是把参数c表示的字符变量,写入文件指针fp指向的文件。如下是一个程序测试例子:
可以看到,新建一个test.txt文件,调用fputc()函数,把一个字符写入到文件中。然后,再重新打开文件,读取文件的数据,调用fgetc()函数读取一个字符,得到的数据是刚刚写入的字符。所以,通过这个例子,我们学习了fgetc()、fputc()函数的操作,对文件进行一个字符的读写操作。
3.5 读写一行字符数据
C语言提供了fgets()、fputs()函数对文件进行读写“一行”的数据,字符串以'\n'字符换行,注意,所谓的“一行”数据,它的最后一个有效字符是’\n’,表示换行符号。字符串的结束符,还是以’\0’为结尾,表示字符串结束符。其中fgets()函数的定义如下:
char *fgets(char *buf, int size, FILE *stream);
函数说明:从stream函数指针所指向的文件中,读取size-1个字节到buf缓存,不是读取size个字节,因为,buf[ ]缓存的第size个字节存放字符串结束符,形成一个有效的字符串。
当读取到换行符时,或者到达文件末尾时,结束文件的读取操作。
返回值:读取数据成功,返回存储数据的缓存地址,就是参数buf的地址。如果读取数据失败,返回NULL。例如,读取文件完,没有数据可以再读取,则返回NULL。
int fputs(const char *buf, FILE *stream);
函数说明:把参数buf指针指向的字符串,写入到stream指向的文件。参数buf是一个字符串指针,必须指向一个合法的字符串。合法的字符串是以字符串结束符'\0'结束,表示一个字符串的结尾。
返回值:写入数据成功,返回成功写入的字符个数。失败返回EOF标记。
如下是一个程序测试例子:
程序运行结果如下:
可以看到,程序调用fputs()函数,往打开的test.txt文件写入数据。直接写入一个字符串。然后,关闭文件,再重新打开文件。调用fgets()函数读取数据,读取数据的时候,遇到回车换行的字符'\n',表示一行数据,那么,就返回读取到的一行数据。
在实际的项目开发过程中,fgets()函数非常有用。例如,我们定义一个config.txt文件,里面存放一些系统的配置信息,文件的格式如下:
cat /etc/config.txt
sys_pwd=123456
ApCliAuthMode=WPA2PSK
ApCliEncrypType=AES
ApCliChannel=1
ApCliDefaultKeyID=1
那么,文件的配置信息是一行一行数据,所以,可以用fgets()函数,快速读取出每一行系统配置信息。