Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add scanf() documentation for C #5999

Merged
merged 6 commits into from
Jan 23, 2025
Merged
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions content/c/concepts/basic-output/terms/scanf/scanf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
Title: 'scanf()'
Description: 'Reads a user input and assigns it to a variable.'
Subjects:
- 'Code Foundations'
- 'Computer Science'
Tags:
- 'Functions'
- 'Input'
CatalogContent:
- 'learn-c'
- 'paths/computer-science'
---

The **`scanf()`** (scan formatted string) function reads a user input and then converts that input into a value that it assigns to a variable.

## Syntax

```pseudo
scanf(string, &variable, &variable2, ..., &variableN)
```

The `scanf()` function takes a format specifier string as input, along with a variable for each format specifier in the string. The format specifier string acts as a template that the function will use to convert the user input into values for the variables.

For a short list of format specifiers you can use in the input string, see the 'Format Specifiers' table in the [`printf`](https://www.codecademy.com/resources/docs/c/basic-output/printf) documentation.

> **Note:** `scanf()` does not have any intrinsic validation of the user input. This can cause errors if the user input does not match the format specifiers in the string.

## Examples

In the following example, the format specifier `%d` tells the function to expect an integer, then assigns it to the variable `yourNumber`:

```c
#include <stdio.h>

int main(void) {
int yourNumber;

printf("Type your favorite number:");
scanf("%d", &yourNumber);
printf("Your favorite number is: %d", yourNumber);
}
```

If the user typed in `3`, the output would be:

```shell
Your favorite number is: 3
```

Here is another example using two variables:

```c
#include <stdio.h>

int main(void) {
int yourNumber;
char yourLetter;

printf("Type your favorite number and letter:");
scanf("%d%c", &yourNumber, &yourLetter);
printf("Your favorite number is: %d and your favorite letter is: %c", yourNumber, yourLetter);
}
```

If the user typed in `4B`, the output would be:

```shell
Your favorite number is: 4 and your favorite letter is: B
```
Loading