6.23.22 ungetwc Function

Pushes a wide character back to an input stream.

Attention: This function is implemented only by MPLAB XC32 C compilers.

Include

<wchar.h>

Prototype

wint_t ungetwc(wint_t c, FILE *stream);

Arguments

c
the wide character to push back
stream
the stream to accept the wide character

Return Value

The function returns the wide character pushed back, or WEOF if the operation fails.

Remarks

The getwc() function is equivalent to fgetwc().

Example

#include <wchar.h>
#include <stdio.h>

int main(void)
{
  FILE * myfile;
  wint_t wc;
  wchar_t buffer[256];

  myfile = fopen("afile", "rt");
  if(myfile!=NULL)
    while(!feof (myfile)) {
      wc=getwc(myfile);
      if (wc != WEOF) {
        if (iswlower(wc)) // is the first wide char lower case
          ungetwc(towupper(wc), myfile);  // make it upper case
      else
          ungetwc(wc, myfile);
      fgetws(buffer, 255, myfile);
      fputws(buffer, stdout);
    }
  }
}

Example Input

Content of afile.

The curious CASE of this File
the button on the Shirt
The function of this task

Example Output

The curious CASE of this File
The button on the Shirt
The function of this task