ฟังก์ชัน อินพุตและเอาต์พุต ภาษา C – Input and Output Functions in C
ภาพรวม
อินพุตหมายถึงการป้อนข้อมูลลงในโปรแกรมและเอาต์พุตหมายถึงการรับข้อมูลออกจากโปรแกรม อินพุตและเอาต์พุตใน C ทำได้โดยใช้ไลบรารี Standard Input/Output ซึ่งเราสามารถรวมไว้ในโปรแกรมโดยใช้ไฟล์ส่วนหัว stdio.h ประกอบด้วยฟังก์ชันอินพุตและเอาต์พุตใน C เช่น scanf() สำหรับอินพุตและ printf() สำหรับเอาต์พุต สตรีมในการเขียนโปรแกรม C จะใช้เพื่อรับอินพุตหรือเอาต์พุตเพื่อขจัดความกังวลเกี่ยวกับตำแหน่งเริ่มต้นของข้อมูลหรือปลายทางสุดท้ายของข้อมูล
ขอบเขต
- บทนำเกี่ยวกับอินพุต/เอาต์พุตใน C และฟังก์ชันอินพุตและเอาต์พุตใน C
- อินพุต/เอาต์พุตของประเภทข้อมูลพื้นฐานและขั้นสูงใน C.
- รายละเอียดของฟังก์ชั่นอินพุตและเอาต์พุตในตัวใน C ยังได้รับ
บทนำ
คำตอบของคุณจะเป็นอย่างไรถ้าฉันถามคุณว่าอัลกอริธึมคืออะไร? จากนั้นคุณอาจตอบกลับว่าเป็นขั้นตอนทีละขั้นตอนในชุดคำสั่งที่ให้ผลลัพธ์ที่ต้องการแก่เรา จากนั้นคำถามของฉันก็คือ ” ผลลัพธ์ ที่ต้องการ เพื่ออะไร” อีกครั้งเป็นเรื่องง่าย “ เอาต์พุตสำหรับอินพุต ” นี่หมายความว่าอัลกอริธึม/โปรแกรมส่วนใหญ่รับอินพุตเพื่อดำเนินการตามขั้นตอนทีละขั้นตอนเพื่อให้ได้เอาต์พุตที่ต้องการ
ป้อนข้อมูลผ่านแป้นพิมพ์ และเอาต์พุตอาจแสดงบนหน้าจอหรือพิมพ์ผ่านเครื่องพิมพ์หรือด้วยวิธีอื่น อย่างไรก็ตาม สำหรับอุปกรณ์ที่แตกต่างกัน อาจมีกระบวนการประเภทที่แตกต่างกันสำหรับอินพุต/เอาต์พุต ซึ่งอาจเป็นปัญหาสำหรับโปรแกรมเมอร์ เพื่อหลีกเลี่ยงปัญหานี้ อินพุต/เอาต์พุตทั้งหมดจะทำโดยใช้สตรีมในภาษา C ซึ่งจัดการอินพุต/เอาต์พุตโดยไม่ต้องดูแลว่าอินพุตมาจากไหนและปลายทางของเอาต์พุตเป็นอย่างไร สามารถเพิ่มลงในโปรแกรม C ใดก็ได้โดยแนะนำไลบรารี Standard Input/Output โดยใช้ส่วนหัว stdio.h
กระแสคือลำดับของไบต์ของข้อมูลในรูปแบบของลำดับของอักขระ ในขณะที่รับอินพุต เราได้รับลำดับของอักขระที่เข้าสู่โปรแกรมของเรา นั่นคือ สตรีมอินพุต และสำหรับเอาต์พุต เราจะส่งลำดับของอักขระออกจากโปรแกรมของเรา ซึ่งเป็นสตรีมเอาต์พุต ข้อได้เปรียบหลักของสตรีมคือทำให้การเขียนโปรแกรมอินพุต/เอาต์พุตไม่ขึ้นกับอุปกรณ์
อินพุตใน C คืออะไร?
คุณเคยเยี่ยมชมตู้เอทีเอ็มหรือไม่? ถ้าใช่ คุณทราบดีว่า ATM เป็นร้านธนาคารอิเล็กทรอนิกส์ที่ให้บริการธุรกรรมแก่ผู้ใช้ตามชุดคำสั่งบางชุด อย่างไรก็ตาม สำหรับผู้ใช้ทุกคน มันต้องมีรายละเอียดบางอย่าง เช่น PIN ซึ่งหมายความว่าอัลกอริทึมส่วนใหญ่มีชุดคำสั่งบางอย่าง แต่ต้องการข้อมูล/ข้อมูลภายนอกเพื่อแก้ไข อินพุตหมายถึงกระบวนการป้อนข้อมูลลงในโปรแกรม ข้อมูลสามารถอยู่ในบรรทัดคำสั่งหรือจากไฟล์ หน่วยความจำเข้าถึงโดยสุ่มจะถูกเก็บไว้โดยโปรแกรม C ขณะดำเนินการ เมื่อข้อมูลจากตำแหน่งภายนอกมายังโปรแกรม ข้อมูลนั้นจะถูกย้ายไปยัง RAM ซึ่งโปรแกรมสามารถเข้าถึงได้ และข้อมูลภายนอกนั้นเรียกว่าข้อมูลเข้า
เอาต์พุตใน C คืออะไร?
มาต่อเรื่อง ATM ของเรากันเพื่อที่ว่าเมื่อผู้ใช้ระบุ PIN และอินพุตที่จำเป็นอื่นๆ ATM หลังจากปฏิบัติตามคำแนะนำทั้งหมดแล้ว ให้เงินสด รายละเอียดธนาคาร หรือสิ่งอื่นๆ ที่ต้องการ ซึ่งหมายถึงอัลกอริทึมหลังจากดำเนินการกับอินพุตแล้ว ผลลัพธ์. อย่างไรก็ตาม มันอาจจะแตกต่างกันออกไป เช่น การแสดงผลบนหน้าจอหรือการพิมพ์ผ่านเครื่องพิมพ์หรือในอีกทางหนึ่ง เอาต์พุตหมายถึงการส่งข้อมูลออกจากโปรแกรมหรือเพียงแค่ส่งข้อมูลไปยังตำแหน่งออกจากหน่วยความจำของโปรแกรม ปลายทางของข้อมูลอาจเป็นหน้าจอ เครื่องพิมพ์ หรือดิสก์ เพื่อให้ได้ผลลัพธ์ ไม่จำเป็นต้องมีอินพุตเสมอไป เช่น อัลกอริธึมสำหรับการสร้างตัวเลขสุ่มจะส่งกลับตัวเลขสุ่มโดยไม่มีอินพุตใดๆ
จะรับอินพุตและเอาต์พุตของประเภทพื้นฐานใน C ได้อย่างไร
เรามีฟังก์ชันอินพุตและเอาต์พุตใน C ลองดูกัน: Input
สำหรับการป้อนข้อมูลใน C เราใช้ฟังก์ชันในตัวของ C scanf( ) scanf() วิธีอ่านอินพุตจากสตรีมอินพุตมาตรฐาน stdin และสแกนอินพุตนั้นตามประเภทที่ระบุ
ไวยากรณ์ของการป้อนข้อมูลใน C
scanf(“%A”, &variableOfAType);
ไวยากรณ์ข้างต้นใช้สำหรับรับข้อมูลจากผู้ใช้ โดยที่ %A กำหนดตัวระบุรูปแบบใน C จะช่วยให้คอมไพเลอร์ระบุประเภทข้อมูลของตัวแปรที่เราจะรับอินพุต และ ‘&’ เป็นตัวดำเนินการที่อยู่ใน C ช่วยให้คอมไพเลอร์เปลี่ยนค่าจริงของตัวแปรนี้ที่เก็บไว้ที่ ที่อยู่นี้ใน memory
เอาท์พุต
สำหรับการแสดงผลไปยังผู้ใช้ใน C เราใช้ฟังก์ชันในตัวของ C printf() printf() วิธีเขียนเอาต์พุตไปยังเอาต์พุตสตรีมมาตรฐาน stdout และพิมพ์ค่าที่ส่งผ่านเป็นพารามิเตอร์
ไวยากรณ์ของเอาต์พุตการแสดงผลใน C
printf(“%A”, variableOfAType);
ไวยากรณ์ด้านบนสำหรับการแสดงผลที่ส่งออกไปยังผู้ใช้ โดยที่ %A กำหนด ตัวระบุ รูปแบบใน C จะช่วยให้คอมไพเลอร์ระบุประเภทข้อมูลของตัวแปรที่เราจะส่งออก
ประเภทพื้นฐานของอินพุตและเอาต์พุตใน C รวมถึงประเภทข้อมูลของตัวแปร เช่น int, float, char เป็นต้น A ในไวยากรณ์ด้านบนจะถูกแทนที่ด้วยตัวระบุรูปแบบที่เหมาะสมของประเภทนั้น
ตัวระบุรูปแบบสำหรับประเภทข้อมูลที่แตกต่างกัน
Data type | value of A |
---|---|
int | %d |
float | %f |
char | %c |
long | %l or %ld |
double | %lf |
ไวยากรณ์ของอินพุตและเอาต์พุตของประเภทข้อมูลพื้นฐานใน C
Integer:
Input: scanf("%d", & intVariable);
Output: printf("%d", intVariable);
Float:
Input: scanf("%f", & floatVariable);
Output: printf("%f", floatVariable);
Character:
Input: scanf("%c", & charVariable);
Output: printf("%c", charVariable);
ตัวอย่าง
#include <stdio.h>
int main()
{
// Declaring the variables
int number;
char character;
float float_number;
// --- Integer ---
// Taking input for integer
printf("Enter the integer: ");
scanf("%d", &number);
// Printing Output of integer
printf("\nEntered integer is: %d", number);
// --- Float ---
// Taking input of float
printf("\nEnter the float: ");
scanf("%f", &float_number);
// Printing Output of float
printf("\nEntered float is: %f", float_number);
// --- Character ---
// Taking input of Character
printf("\n\nEnter the Character: ");
scanf("%s", &character);
// Printing Output of Character
printf("\nEntered Character is: %c", character);
return 0;
}
เอาท์พุต
โค้ดด้านบนรับอินพุตสำหรับตัวแปรประเภท character, intege และ float โดยใช้ scanf แล้วส่งออกโดยใช้ printf() โดยใช้ตัวระบุรูปแบบที่เหมาะสม
จะรับอินพุตและเอาต์พุตของประเภทขั้นสูงใน C ได้อย่างไร
มีประเภทข้อมูลขั้นสูงหรือผู้ใช้กำหนดเองหลายประเภทใน C เช่น:
- String
- Structure
ในการรับอินพุตหรือจัดเตรียมเอาต์พุต เราจะใช้ฟังก์ชันอินพุตและเอาต์พุตเดียวกันกับ C ที่เราใช้สำหรับประเภทข้อมูลหลัก มาคุยกันว่าเราจะทำอย่างไร
1. String
String สตริงเป็นเพียงอาร์เรย์อักขระหนึ่งมิติที่มีอักขระบรรทัดสุดท้าย ‘\0’ ต่อท้าย ในสตริง อักขระทั้งหมดมีอยู่ในบล็อกหน่วยความจำที่อยู่ติดกัน และขนาดสูงสุดของสตริงถูกกำหนดไว้ล่วงหน้า
ไวยากรณ์เพื่อกำหนดสตริง
char new_string[size];
ในที่นี้ size คือจำนวนเต็มที่กำหนดไว้ล่วงหน้าซึ่งอ้างอิงถึงขนาดสูงสุดของสตริง มีสี่วิธีในการป้อนข้อมูลของสตริง:
- gets()
- ฟังก์ชันนี้จะนำบรรทัดที่สมบูรณ์เป็นอินพุตจาก stdin และเก็บไว้ในสตริงที่กำหนด
- ฟังก์ชัน gets() ถูกลบใน C11 ดังนั้นการใช้ฟังก์ชันนี้อาจทำให้เกิดข้อผิดพลาดบางอย่าง
ไวยากรณ์:
gets(new_string);
- fgets()
- ฟังก์ชันนี้รับอินพุตจากสตรีมอักขระเฉพาะ เราส่งจำนวนอักขระสูงสุดที่จะใช้เป็นข้อมูลป้อนเข้า และตามนี้ เป็นไปได้สามกรณี:
- 1. หากจำนวนอักขระในสตรีมเท่ากับหรือมากกว่าขนาดสูงสุดที่กำหนด จะใช้อักขระ n ตัวแรก (โดยที่ n คือขนาดสูงสุด)
- 2. หากจำนวนอักขระในสตรีมน้อยกว่าขนาดที่กำหนด ระบบจะรับบรรทัดทั้งหมดเป็นอินพุต
- 3. จะหยุดเมื่ออักขระขึ้นบรรทัดใหม่
- เมื่อลบฟังก์ชัน gets() ฟังก์ชันนี้จึงเป็นทางเลือกหนึ่ง
ไวยากรณ์:
fgets(new_string,size,stdin);
- scanf() โดยใช้ %[^\n]%*c เป็นตัวระบุการเข้าถึง
- ฟังก์ชันนี้จะรับบรรทัดทั้งหมดเป็นอินพุต รวมถึงช่องว่าง
- %[^\n]%*c แบ่งออกเป็นส่วนย่อย:
- ในฟังก์ชัน scanf() เราสามารถใช้นิพจน์ทั่วไปเพื่อจำกัดอินพุตที่นี่ %[^\n] ใช้เพื่อรับอินพุตเท่านั้นจนกว่าจะไม่มีบรรทัดใหม่ปรากฏขึ้น
- %c ใช้สำหรับป้อนอักขระ
- “*” ใช้เพื่อแจ้งให้ฟังก์ชัน scanf() ไม่กำหนดอินพุตให้กับตัวแปรจนกว่าจะรับอินพุตทั้งหมด
ไวยากรณ์:
scanf("%[^\n]%*c",new_string);
- scanf() โดยใช้ %s เป็นตัวระบุการเข้าถึง
- ฟังก์ชันนี้จะรับอินพุตจนถึงอักขระเว้นวรรคแรกเท่านั้น
ไวยากรณ์:
scanf("%s",new_string);
หมายเหตุ: ใน scanf() สำหรับสตริง เราไม่จำเป็นต้องใช้ “&” เนื่องจากชื่อของสตริงเป็นตัวชี้ไปยังตำแหน่งแรก และฟังก์ชันทั้งหมดที่กล่าวถึงข้างต้นมีอยู่ในไฟล์ส่วนหัว stdio.h
เราใช้ฟังก์ชัน printf() เพื่อพิมพ์สตริงโดยใช้ %s เป็นตัวระบุรูปแบบ
ไวยากรณ์:
printf("%s",new_string);
ตัวอย่าง
#include <stdio.h>
int main() {
// declaring maximum size of string
int size = 50;
// declaring the string
char new_string[size];
// using gets function to take input
gets(new_string);
// using printf method to send output:
printf("output 1: %s\n", new_string);
// using gets function to take input
fgets(new_string, size, stdin);
// using printf method to send output:
printf("output 2: %s\n", new_string);
// using gets function to take input
scanf("%[^\n]%*c", new_string);
// using printf method to send output:
printf("output 3: %s\n", new_string);
// using gets function to take input
scanf("%s", new_string);
// using printf method to send output:
printf("output 4: %s\n", new_string);
return 0;
}
For input:
input_1
input_2
input_3
input_4
Output:
output 1: input_1
output 2: input_2
output 3: input_3
output 4: input_4
ในโค้ดด้านบนนี้ เราจะรับอินพุตสำหรับสตริงโดยใช้วิธีการต่างๆ ตามที่กล่าวไว้ข้างต้น แล้วพิมพ์สตริงโดยใช้ printf()
2. Structure
Structure เป็นชนิดข้อมูลที่กำหนดโดยผู้ใช้ ซึ่งมักใช้เพื่อรวมประเภทข้อมูลต่างๆ เข้าด้วยกัน โครงสร้างประกอบด้วยสมาชิกข้อมูลต่างๆ และเมื่อเราเข้าถึงสมาชิกของข้อมูลโดยใช้ตัวดำเนินการจุด พวกมันจะทำงานเหมือนตัวแปรประเภทข้อมูลปกติ ดังนั้น กระบวนการอินพุต/เอาต์พุตสำหรับตัวแปรโครงสร้างจึงคล้ายกับตัวแปรประเภทข้อมูลอื่นๆ โดยใช้ฟังก์ชันอินพุตและเอาต์พุตที่กำหนดไว้ข้างต้นของ C มาดูตัวอย่างกันเพื่อความเข้าใจที่ดีขึ้น:
ตัวอย่าง:เราได้สร้างโครงสร้าง วัตถุของมัน จากนั้นด้วยความช่วยเหลือของสมาชิกข้อมูลโครงสร้างการเข้าถึง dot operator เพื่อรับอินพุตด้วยความช่วยเหลือของฟังก์ชัน scanf() ในที่สุด พิมพ์ทุกตัวแปรโดยเข้าถึงด้วยตัวดำเนินการจุดและพิมพ์ด้วยฟังก์ชัน printf() รหัสสำหรับสิ่งนี้ถูกกล่าวถึงด้านล่าง:
#include <stdio.h>
// structure consists of various type of data types
struct Person {
char name[50]; // string data type
int age; // int data type
int house_number; // int data type
float height; // float data type
};
int main() {
// creating object of structure
struct Person obj;
// taking input for all data types
scanf("%s%d%d%f", obj.name, &obj.age, &obj.house_number, &obj.height);
// printing all the data types
printf("Name of the person is %s\n", obj.name);
printf("Age of the person is %d\n", obj.age);
printf("House Number of the person is %d\n", obj.house_number);
printf("Height of the person is %f\n", obj.height);
return 0;
}
ให้เราป้อนข้อมูลเป็น: Person_name 21 34 5.7
เอาท์พุท:
ฟังก์ชั่นในตัว (Built-in functions)
ในส่วนนี้เราจะมาดูฟังก์ชั่นอินพุตและเอาต์พุตในตัวในรายละเอียด C
scanf() และ printf()
ดังที่เราได้กล่าวไว้ข้างต้น scanf() และ printf() ใช้สำหรับวิธีการอินพุตและเอาต์พุตของภาษาการเขียนโปรแกรมของ c
ฟังก์ชัน scanf() ช่วยในการอ่านไฟล์หรืออินพุตที่เราจัดเตรียมไว้ และในฟังก์ชัน scanf() เราใช้ตัวระบุรูปแบบ เช่น %c, %d เป็นต้น เพื่อตรวจหาชนิดข้อมูลของตัวแปรที่เรากำหนดให้เป็นอินพุต ชนิดส่งคืนของ scanf() เป็นจำนวนเต็ม ฟังก์ชัน scanf() จะคืนค่าจำนวนตัวแปรทั้งหมดที่สแกนสำเร็จ หมายถึงจำนวนอินพุตทั้งหมด มีผลตอบแทนสามประเภทคือ –
- มากกว่าศูนย์หากผ่านตัวแปรสำเร็จ
- เท่ากับศูนย์หากไม่มีตัวแปรระบุ
- น้อยกว่าศูนย์หากเกิดข้อผิดพลาดหรือ EOF (จุดสิ้นสุดไฟล์)
ไวยากรณ์
scanf(“%A”, &variableOfAType);
ตัวอย่าง1
scanf("%d%c", &val1, &val2);
ในตัวอย่างด้านล่าง เรากำลังสแกนตัวแปรสองตัวพร้อมกัน โดยที่ %d ถูกใช้สำหรับอันแรก val1 และ %c ถูกใช้สำหรับอีกอันหนึ่ง val2 ดังนั้นที่นี่ผลตอบแทนของมันจะเป็น 2 เพราะที่นี่มันสแกน 2 ตัวแปร หากคุณสังเกต คุณสามารถระบุชนิดข้อมูลของตัวแปรทั้งสองต่างกัน ตัวแรกเป็นจำนวนเต็ม และตัวที่สองเป็นอักขระ เราสามารถระบุได้อย่างง่ายดายด้วยความช่วยเหลือของตัวระบุรูปแบบ
// C program to show scanf() return type
#include <stdio.h>
int main() {
int val1;
char val2;
int result;
printf("Enter value of val1 and val2: ");
result = scanf("%d %c", &val1, &val2);
printf("Total inputs passed successfully are: %d\n", result);
return 0;
}
เอาท์พุต
ฟังก์ชัน printf() ใช้สำหรับแสดงเอาต์พุตไปยังหน้าจอ และในฟังก์ชัน printf() เราใช้ตัวระบุรูปแบบ เช่น %c, %d ฯลฯ เพื่อตรวจจับชนิดข้อมูลของตัวแปรที่เรากำหนดให้เป็นอินพุต ชนิดส่งคืนของฟังก์ชัน printf เป็นจำนวนเต็ม ส่งคืนจำนวนอักขระทั้งหมดที่กำหนดเป็นเอาต์พุตโดย printf()
ไวยากรณ์
printf(“%A”, &variableOfAType);
ตัวอย่างเช่น
printf("%d%c",val1,val2);
ในตัวอย่างด้านล่าง เราพิมพ์ตัวแปร val1 และ val2 สองตัว แต่คุณสามารถเห็นประเภทข้อมูลของ val1 เป็นจำนวนเต็ม และ val2 เป็นอักขระ และในจำนวนเต็ม คุณสามารถป้อนอินพุต -2e31 ถึง 2e31-1 และในอักขระ คุณสามารถระบุอักขระได้เพียงตัวเดียวเท่านั้น ดังนั้นฟังก์ชัน printf() จะคืนค่าจำนวนอักขระทั้งหมดเป็น int บวกหนึ่งอักขระ และที่นี่เราไม่ได้ให้ช่องว่างหรือช่องว่างระหว่าง val1 และ val2 มิฉะนั้นจะถูกนับด้วย
// C program to show printf() return type
#include <stdio.h>
int main() {
int result;
int val1;
char val2;
printf("Enter value of val1 and val2: ");
scanf("%d %c", &val1, &val2);
result = printf("%d%c", val1, val2);
printf("\nTotal printed characters are: %d\n", result);
return 0;
}
เอาท์พุต
getchar() และ putchar()
ฟังก์ชัน putchar() เป็นฟังก์ชันของคอนโซลเอาต์พุตมาตรฐาน โดยจะแสดงเพียงอักขระเดียวในแต่ละครั้ง และอักขระเป็นประเภทของถ่านที่ไม่ได้ลงชื่อ (หมายความว่า char ใช้ทั้ง 8 บิตและไม่มีเครื่องหมายบิต) และอักขระที่ส่งผ่านไปยังฟังก์ชันนี้จะถูกส่งผ่านเป็นพารามิเตอร์ ประเภทการส่งคืนของฟังก์ชันนี้เป็น int และจะคืนค่า ASCII ของอักขระที่ส่งไป หากฟังก์ชันทำงานสำเร็จ จะคืนค่า ASCII ของอักขระที่ส่งผ่านเป็นพารามิเตอร์ไปยังฟังก์ชันนี้ และคืนค่า EOF หากเกิดข้อผิดพลาด
ไวยากรณ์
int putchar(int char)
ตัวอย่าง 1
#include <stdio.h>
int main()
{
char Character = 'A';
putchar(Character);
return (0);
}
เอาท์พุต
ตัวอย่าง 2
#include <stdio.h>
int main()
{
char Character = 'A';
for(char i = Character;i <= 'Z'; i++){
putchar(i);
}
return (0);
}
เอาท์พุต
ฟังก์ชัน getchar()เป็นฟังก์ชันของคอนโซลอินพุตมาตรฐาน ใช้อักขระตัวเดียวเป็นอินพุตในแต่ละครั้ง และไม่ใช้พารามิเตอร์ใดๆ ประเภทการส่งคืนของประเภทอักขระของถ่านที่ไม่ได้ลงชื่อซึ่งอ่านเป็นอินพุตและส่งคืน EOF (จุดสิ้นสุดของไฟล์) หากเกิดข้อผิดพลาด
ไวยากรณ์
int getchar (void);
ch=getchar();
ตัวอย่าง
#include <stdio.h>
void main()
{
char c;
printf ("\n write a char: ");
c = getchar();
printf(" value of char which we take as input: ");
putchar(c);
}
เอาท์พุต
gets() และ puts()
ฟังก์ชันทำให้เป็นส่วนหนึ่งของเอาต์พุต และรับฟังก์ชันเป็นส่วนหนึ่งของอินพุต มีการประกาศในไฟล์ส่วนหัว stdio.h
ฟังก์ชัน puts()ใช้สำหรับพิมพ์/แสดงผลลัพธ์บนหน้าจอ แต่ที่นี่จะส่งผ่านตัวแปรเฉพาะในรูปแบบของเส้นหรือสตริงเท่านั้น จะพิมพ์สตริงที่ส่งผ่านในบรรทัดใหม่และประเภทการส่งคืนเป็นจำนวนเต็ม มันให้ผลตอบแทนเพียงสองประเภทเท่านั้นคือ-
- จำนวนอักขระที่พิมพ์ไปยังคอนโซลหากดำเนินการสำเร็จ
- ข้อผิดพลาดหรือ EOF (จุดสิ้นสุดของไฟล์)
ไวยากรณ์
int puts(const char* str);
ตัวอย่าง
#include<stdio.h>
int main()
{
char string[] = "Hello world!";
int val = puts(string);
printf("Returned Value Val = %d", val);
return 0;
}
เอาท์พุต
ฟังก์ชัน get() ใช้สำหรับวิธีการป้อนข้อมูล มันอ่านบรรทัดและเก็บไว้ในอาร์เรย์อักขระ เนื่องจากฟังก์ชันนี้ เราสามารถรับอินพุตของสตริง ตามด้วย enter หรือเว้นวรรคเป็นอินพุต
ชนิดส่งคืนของฟังก์ชันนี้คือสตริง จะส่งคืนสตริง (ซึ่งส่งผ่านเป็นพารามิเตอร์ในฟังก์ชัน gets()) เมื่อดำเนินการสำเร็จและส่งคืน EOD (จุดสิ้นสุดของไฟล์) หากมีข้อผิดพลาดเกิดขึ้น ไวยากรณ์
char *gets(char *str);
ตัวอย่าง
#include <stdio.h>
int main () {
char string[50];
printf("Enter a string : ");
gets(string);
printf("You entered: ");
puts(string);
return(0);
}
เอาท์พุต
fprintf()
ฟังก์ชัน fprintf() ใช้สำหรับพิมพ์เอาต์พุตในไฟล์แทนหน้าจอเอาต์พุตมาตรฐาน
ไวยากรณ์
int fprintf(FILE *stream, const char *format, [arguments ...]);
ในไวยากรณ์ข้างต้น stream แสดงถึงไฟล์ที่เราต้องพิมพ์ผลลัพธ์ format คือสตริง ซึ่งโดยพื้นฐานแล้วเป็นผลลัพธ์ของเรา และอาจฝังโดยแท็กรูปแบบบางแท็กซึ่งจะถูกแทนที่ด้วยค่าที่ส่งผ่านเป็นอาร์กิวเมนต์
มาดูตัวอย่างเพื่อความเข้าใจมากขึ้น:
// C program to show fprintf()
#include<stdio.h>
int main()
{
char str[50];
//create file
FILE *fptr = fopen("example.txt", "w");
if (fptr == NULL)
{
printf("Could not open file");
return 0;
}
puts("Enter string");
scanf("%[^\n]%*c", str);
fprintf(fptr,"%s\n", str);
fclose(fptr);
return 0;
}
เอาท์พุต
example.txt
ในโค้ดด้านบนนี้ เราได้สร้างไฟล์และนำสตริงมาเป็นอินพุต จากนั้นเราเขียนอินพุตที่รับไปยังไฟล์โดยใช้ฟังก์ชัน fprintf()
putch() & getche()
ฟังก์ชั่น putch()ถูกประกาศในไฟล์ส่วนหัว conio.h ใช้สำหรับพิมพ์อักขระตัวเดียวบนหน้าจอ และอักขระนั้นเป็นประเภทตัวอักษรและตัวเลข (ค่าอาจเป็นตัวอักษรหรือตัวเลข)
มีการประกาศฟังก์ชัน getche() ในไฟล์ส่วนหัว conio.h มันถูกใช้เพื่อดึงอักขระจากคีย์บอร์ดอินพุตมาตรฐาน และหลังจากรับอินพุตแล้ว มันจะพิมพ์เอาต์พุตบนหน้าจอเอาต์พุตทันที เราไม่จำเป็นต้องกด Enter เพื่อให้คำสั่งสำหรับเอาต์พุต
ไวยากรณ์
putch(ch);
ch=getche();
ตัวระบุรูปแบบสำหรับ อินพุต/เอาต์พุต
ตัวระบุรูปแบบใช้เพื่อกำหนดชนิดข้อมูลของตัวแปรในฟังก์ชันอินพุตและเอาต์พุตใน C ช่วยให้คอมไพเลอร์ระบุประเภทข้อมูลของตัวแปรได้ มันถูกใช้ภายในฟังก์ชัน scanf() สำหรับการป้อนข้อมูล และภายในฟังก์ชัน prinf() สำหรับการแสดงผลลัพธ์ รวมเรามีตัวระบุรูปแบบแปดตัวใน C
Data type | Format specifiers | Description |
---|---|---|
int | %d | use for decimal integer value |
%u | use for unsigned integer value | |
%o | use for unsigned octal value | |
%x | use for unsigned hexadecimal value | |
long int | %ld | use for long int value |
double | %f | use for double value |
%lf | use for long double value | |
float | %f | use for floating point value |
%e | use for floating point value in decimal or exponential form. | |
char | %c | use for single character value |
%s | use for string of value of character |
บทสรุป
- อินพุตหมายถึงกระบวนการป้อนข้อมูลลงในโปรแกรมและเอาต์พุตหมายถึงกระบวนการส่งข้อมูลออกจากโปรแกรม
- ไลบรารีอินพุต/เอาท์พุตมาตรฐานรวมอยู่ในโปรแกรมโดยใช้ไฟล์ส่วนหัว stdio.h ซึ่งประกอบด้วยฟังก์ชันอินพุตและเอาต์พุตหลักใน C scanf() และ printf( )
- สตรีมในการเขียนโปรแกรม C จะใช้เพื่อรับอินพุตหรือเอาต์พุตเพื่อขจัดความกังวลเกี่ยวกับตำแหน่งเริ่มต้นหรือปลายทางสุดท้ายของข้อมูล
credit : https://www.scaler.com/topics/c/