From 754bbf7a25a8dda49b5d08ef0d0443bbf5af0e36 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sun, 7 Apr 2024 13:41:34 -0500 Subject: new repository --- devdocs/c/io%2Ffgetc.html | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 devdocs/c/io%2Ffgetc.html (limited to 'devdocs/c/io%2Ffgetc.html') diff --git a/devdocs/c/io%2Ffgetc.html b/devdocs/c/io%2Ffgetc.html new file mode 100644 index 00000000..0f73cb25 --- /dev/null +++ b/devdocs/c/io%2Ffgetc.html @@ -0,0 +1,73 @@ +

fgetc, getc

Defined in header <stdio.h>
int fgetc( FILE *stream );
+
(1)
int getc( FILE *stream );
+
(2)
+1) Reads the next character from the given input stream.
+2) Same as fgetc, except that if getc is implemented as a macro, it may evaluate stream more than once, so the corresponding argument should never be an expression with side effects.

Parameters

+ +
stream - to read the character from

Return value

On success, returns the obtained character as an unsigned char converted to an int. On failure, returns EOF.

+

If the failure has been caused by end-of-file condition, additionally sets the eof indicator (see feof()) on stream. If the failure has been caused by some other error, sets the error indicator (see ferror()) on stream.

+

Example

#include <stdio.h>
+#include <stdlib.h>
+ 
+int main(void)
+{
+    const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
+    int is_ok = EXIT_FAILURE;
+ 
+    FILE* fp = fopen(fname, "w+");
+    if (!fp) {
+        perror("File opening failed");
+        return is_ok;
+    }
+    fputs("Hello, world!\n", fp);
+    rewind(fp);
+ 
+    int c; // note: int, not char, required to handle EOF
+    while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
+        putchar(c);
+ 
+    if (ferror(fp))
+        puts("I/O error when reading");
+    else if (feof(fp)) {
+        puts("End of file is reached successfully");
+        is_ok = EXIT_SUCCESS;
+    }
+ 
+    fclose(fp);
+    remove(fname);
+    return is_ok;
+}

Possible output:

+
Hello, world!
+End of file is reached successfully

References

See also

+ + + + +
reads a character from stdin
(function)
+
(removed in C11)(C11)
reads a character string from stdin
(function)
writes a character to a file stream
(function)
puts a character back into a file stream
(function)
C++ documentation for fgetc, getc
+

+ © cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
+ https://en.cppreference.com/w/c/io/fgetc +

+
-- cgit v1.2.3