我想知道putw()getw()函数的用法。据我所知,这些用于像putcgetc这样的文件读写操作,但是它们只处理整数。但是当我使用它们来写整数时,它只是在文件中写入不同的符号(例如使用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

10-08 02:35