📖 Scenario: You are writing a small program that simulates a simple login system. The program checks if a username and password are correct and returns a code to indicate success or failure.
🎯 Goal: Build a C program that uses return codes from a function to indicate if login was successful or not.
📋 What You'll Learn
Create a function that checks username and password and returns 0 for success and 1 for failure
Use variables to store the correct username and password
Call the function with test username and password
Print the return code to show if login succeeded or failed
💡 Why This Matters
🌍 Real World
Return codes are used in many programs to signal if an operation succeeded or failed, like login systems, file operations, or network requests.
💼 Career
Understanding return codes helps in debugging and writing clear, maintainable code that communicates status between functions and modules.
Progress0 / 4 steps
1
Create variables for correct username and password
Create two char arrays called correct_username and correct_password with values "admin" and "1234" respectively.
C
Hint
Use char arrays to store text strings in C.
2
Create a function to check login and return codes
Write a function called check_login that takes two char* parameters named username and password. The function should return 0 if both match correct_username and correct_password, otherwise return 1.
C
Hint
Use strcmp from string.h to compare strings. Return 0 for success, 1 for failure.
3
Call the function with test values
Create two char* variables called test_user and test_pass with values "admin" and "1234". Then call check_login(test_user, test_pass) and store the result in an int variable called result.
C
Hint
Use string pointers for test username and password. Store the function return in result.
4
Print the return code result
Write a printf statement to print "Login result: %d\n" with the variable result.
C
Hint
Use printf to show the login result number.
Practice
(1/5)
1. What does a return code of 0 usually mean in C functions?
easy
A. The function completed successfully
B. The function encountered an error
C. The function did not run
D. The function returned a pointer
Solution
Step 1: Understand return codes meaning
In C, a return code of 0 typically means success or no error.
Step 2: Interpret the code 0
Since 0 means success, the function completed its task without problems.
Final Answer:
The function completed successfully -> Option A
Quick Check:
Return code 0 = success [OK]
Hint: Remember: 0 means success, non-zero means error [OK]
Common Mistakes:
Thinking 0 means error
Confusing return code with function output
Assuming non-zero means success
2. Which of the following is the correct way to return an error code from a C function?
easy
A. return 0;
B. return 'error';
C. return -1;
D. return true;
Solution
Step 1: Identify valid return types for error codes
Return codes are integers, so returning a number like -1 is valid for error.
Step 2: Check each option
return 0; returns 0 (success), B returns a multi-char constant (invalid), C returns true (boolean, invalid in C), D returns -1 (valid error code).
Final Answer:
return -1; -> Option C
Quick Check:
Use integer codes for errors [OK]
Hint: Return integer codes; negative often means error [OK]
Common Mistakes:
Returning strings instead of integers
Using boolean values in C return codes
Returning 0 for errors
3. What will be the output of this C program?
#include <stdio.h>
int check(int x) {
if (x > 0) return 0;
else return 1;
}
int main() {
int result = check(-5);
printf("Return code: %d\n", result);
return 0;
}
medium
A. Return code: 1
B. Return code: -5
C. Return code: 0
D. No output
Solution
Step 1: Analyze the check function behavior
If x > 0, it returns 0; otherwise, it returns 1.
Step 2: Apply input value -5
Since -5 is not greater than 0, the function returns 1.
Final Answer:
Return code: 1 -> Option A
Quick Check:
Input -5 <= 0, so return 1 [OK]
Hint: Check conditions carefully to find returned code [OK]
Common Mistakes:
Assuming negative input returns 0
Confusing return value with input
Ignoring else branch
4. Identify the error in this C function that uses return codes:
int process(int val) {
if (val == 0)
return 0;
else
return;
}
medium
A. Using 0 as success code
B. No error, code is correct
C. Function should return void
D. Missing return value in else branch
Solution
Step 1: Check function return type and return statements
The function returns int, so every return must have an int value.
Step 2: Identify missing return value
The else branch has 'return;' without a value, which is invalid for int return type.
Final Answer:
Missing return value in else branch -> Option D
Quick Check:
int functions must return int always [OK]
Hint: Every return in int function must return int value [OK]
Common Mistakes:
Returning nothing in non-void function
Confusing void and int return types
Ignoring compiler warnings
5. You want to write a function int saveData() that returns 0 on success, 1 if file not found, and 2 if write error. Which is the best way to handle these return codes in main()?
hard
A. Ignore the return code and always print "Success"
B. Check if return code is 0, else print error message based on code
C. Return the code from main without checking
D. Use return codes only for debugging, not in main
Solution
Step 1: Understand return codes purpose
Return codes help main know if saveData succeeded or failed and why.
Step 2: Choose proper handling in main
Main should check if return code is 0 (success), else print specific error messages for 1 or 2.
Final Answer:
Check if return code is 0, else print error message based on code -> Option B
Quick Check:
Use return codes to handle errors clearly [OK]
Hint: Check return codes to handle errors clearly [OK]
Common Mistakes:
Ignoring return codes in main
Printing success without checking
Using return codes only for debugging
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.