我想知道putw()
和getw()
函数的用法。据我所知,这些用于像putc
和getc
这样的文件读写操作,但是它们只处理整数。但是当我使用它们来写整数时,它只是在文件中写入不同的符号(例如使用putw()
将65写入文件。它将A
写入文件)。为什么要采用ASCII值?我正在使用代码块13.12。码:
#include<stdio.h>
int main()
{
FILE *fp;
int num;
fp=fopen("file.txt","w");
printf("Enter any number:\n");
scanf("%d",&num);
putw(num,fp);
fclose(fp);
printf("%d\n",num);
return 0;
}
最佳答案
让我们阅读一下getw()和putw()函数的点对点解释。
getw()和putw()与FILE处理有关。
putw()用于在文件(文本文件)上写入整数数据。
getw()用于从文件读取整数数据。
getw()和putw()与getc()和putc()类似。唯一的区别是getw()和putw()特别用于读取和写入整数数据。
int putw(integer, FILE*);
函数的返回类型为整数。
有两个参数第一个“整数”,告诉您要在文件上写入的整数,第二个参数“ FILE *”告诉要在其中写入数据的文件的位置。
现在让我们看一个例子。
int main()
{
FILE *fp;
fp=fopen("file1.txt","w");
putw(65,fp);
fclose(fp);
}
这里putw()以整数作为参数(在这种情况下为65)将其写入文件file1.txt,但是如果我们手动打开文本文件,则会在文件上找到'A'。这意味着putw()实际上接受整数参数,但将其作为字符写入文件中。
因此,这意味着编译器将参数作为特定字符的ASCII代码并将该字符写入文本文件中。
int getw(FILE*);
返回类型是整数。
具有一个参数FILE *,该参数是要从中读取整数数据的文件的位置。
在下面的示例中,我们将读取在上面的示例中写入文件file1.txt的数据。
int main()
{
FILE *fp;
int ch;
fp=fopen("file1.txt","r");
ch=getw(fp);
printf("%d",ch);
fclose(fp);
}
输出
65
说明:在这里,我们读取了在上述程序中写入到file1.txt的数据,输出为65。
因此,getw()读取已经写入文件file1.txt的字符“ A”,并返回字符“ A”的ASCII码65。
我们也可以将以上程序编写为:
int main()
{
FILE *fp;
fp=fopen("file1.txt","r");
printf("%d",getw(fp));
fclose(fp);
}
输出
65