- คำว่า string ในที่นี้หมายถึง
char [](array) ทั้งหมด - ต้อง
#include <stdio.h>
- ใช้ได้ในรูปแบบ
printf("ข้อความที่ต้องการ", arg1, arg2, ...); - สามารถนำ arg1, arg2, ... มาแทนในข้อความได้
%dใช้กับint%fใช้กับfloat(หากต้องการปรินท์ n ตำแหน่ง ให้พิมพ์%.nfเช่น%.2f)%cใช้กับchar%sใช้กับ string (char [])
ตัวอย่าง
int a = 5;
int b = 10;
printf("a is %d.\n", a);
printf("b is %d.\n", b);
printf("a + b is %d.\n", a + b);- ใช้ได้ในรูปแบบ
scanf("%_", pointer); - %_ ใช้คล้ายๆ
printf - pointer คือตำแหน่งของตัวแปรที่ต้องการให้รับค่าจากผู้ใช้
- สังเกตว่า
scanfเป็นฟังก์ชันแบบ Pass by Reference คือscanfรับข้อมูลจากผู้ใช้แล้วจึงแก้ไขตัวแปรที่เราส่งตำแหน่งไปให้
- สังเกตว่า
- ไม่จำเป็นต้องใช้เครื่องหมาย
&กับ string (char []) - string จะอ่านถึงช่องว่าง (space bar/tab/new line) เท่านั้น
ตัวอย่าง
int a;
scanf("%d", &a);
char b;
scanf("%c", &b);
char name[51]; // ใช้ได้มากสุด 50 ตัว (ตัวสุดท้ายเป็น \n)
scanf("%s", name);
printf("%s picked character %c and number %d.", name, b, a);- หากต้องการอ่าน string ทั้งบรรทัดให้ใช้
getsแทน (เช่นgets(name);ในตัวอย่างข้างบน)
- คำว่า string ในที่นี้ สามารถใช้ได้กับทั้ง
char []ของ C และstringของ C++ เว้นแต่ว่าจะระบุไว้เป็นกรณีพิเศษ - สามารถใช้
printfและscanfได้ ถ้า#include <cstdio>(#include <stdio.h>) cinและcoutของภาษา C++ ต้อง#include <iostream>และusing namespace std- ควรเลือกใช้แบบ C หรือ C++ แบบใดๆ แบบหนึ่งเท่านั้น
- ใช้ได้ในรูปแบบ
cout << arg1 << arg2 << arg3 << ... << argn; - ของที่ใส่ลงไปจะเป็นตัวแปรพื้นฐานใดๆก็ได้ เช่น string, int, float โดยไม่ต้องระบุชนิด
- สามารถใช้
endlแทน\nได้
ตัวอย่าง
int n = 5;
cout << "n is " << n << "." << endl;- ใช้ได้ในรูปแบบ
cin >> arg1 >> arg2 >> arg3 >> ... >> argn; - ใช้กับตัวแปรพื้นฐานใดๆก็ได้ เช่น string, int, float โดยไม่ต้องระบุชนิด
ตัวอย่าง
char name[51]; // ใช้ได้มากสุด 50 ตัว (ตัวสุดท้ายเป็น \n)
int n;
cin >> name >> n;
cout << name << " picked " n << "." << endl;- หากต้องการอ่าน string (
char []) ทั้งบรรทัด ใช้getsแบบเดิม หรือcin.getline(name, 50)ก็ได้ (แบบหลังต้องระบุขนาดที่รองรับมากสุด) - สำหรับ
stringของ C++ ให้ใช้getline(cin, name);