Quét c ++

Hàm int scanf(const char *format,…) trong Thư viện C chuẩn đầu vào đã được định dạng từ stdin

Hàm scanf không chấp nhận khoảng trống giữa hai chuỗi (khác với hàm gets()), tức là bạn chỉ có thể nhập một chuỗi liền kề, nếu bạn nhập cả hai khoảng trống thì phần nội dung sau khoảng trống đầu tiên sẽ không nhận được

Khai báo hàm scanf() trong C

Dưới đây là phần khai báo cho hàm scanf() trong C

int scanf(const char *format, ...)

Tham số

format — Đây là chuỗi chứa một trong các mục sau

Ký tự Khoảng trắng, ký tự Không phải khoảng trắng và Chỉ định định dạng. Một công cụ xác định định dạng sẽ là định dạng [=%[*][width][modifiers]type=], được giải thích như sau

Tham sốMiêu tả*Đây là một dấu hoa thị bắt đầu (tùy ý) để chỉ rằng dữ liệu được đọc từ Stream nhưng bị bỏ qua, ví dụ. nó không được lưu trữ trong tham số tương ứng với widthXác định số ký tự tối đa được đọc trong hoạt động đọc hiện tại modifierXác định một kích thước khác với int (trong trường hợp d, tôi và n), int không dấu (trong trường hợp o, . h cho short int (cho d, i và n), hoặc unsigned short int (cho o, u và x); . You follow the next table

Type specifier for fscanf function

TypeInputKiểu tham sốKý tự đơn. Read character next. Nếu một độ rộng khác 1 được xác định, thì hàm này sẽ đọc độ rộng của các ký tự và lưu trữ chúng trong các vị trí liên tiếp của mảng đã được truyền dưới dạng tham số. Không có ký tự null nào được thêm vào cuối ký tự *dSố nguyên hệ thống phân tích. This number option was set before by a dấu + hoặc –int *e, E, f, g, GSố thực hiện dấu chấm động. Số thập phân chứa một dấu thập phân, được đặt trước tùy chọn bởi một dấu + hoặc – và được đặt theo tùy chọn bởi ký tự e hoặc E và một số thập phân. Hai ví dụ xác thực là -732. 103 và 7. 12e4float *oSố nguyên bát phân tích *sChuỗi ký tự. Nó sẽ đọc các ký tự liên tiếp nhau khi tìm thấy một khoảng trắng (có thể là trống, dòng mới (dòng mới) và tab)char *uSố nguyên hệ thống thập phân không dấu int *x, XSố nguyên hệ thống thập lục phân *

Các tham số bổ sung — Phụ thuộc vào định dạng chuỗi định dạng, hàm này có thể có một chuỗi tham số bổ sung, mỗi tham số chứa một giá trị để được chèn vào thay cho mỗi %-tag được xác định trong định dạng tham số, . This tham số should same number with number %-tags that mong đợi một giá trị

Return to value

Nếu thành công, tổng ký tự đã ghi sẽ được trả về, nếu thất bại thì trả về một số âm

Ví dụ

Trong ví dụ sau, mình đã nhập khoảng trống trong phần số điện thoại và ngày sinh, và bạn theo dõi phần hiển thị kết quả để thấy rằng lệnh scanf không nhận khoảng trống

Mình là Đan , học viên lớp C1609I. Hôm nay mình sẽ hướng dẫn các bạn cách sử dụng hàm scanf và printf trong C++

Đầu tiên ta sẽ đi xem scanf và printf nó mang ý nghĩa gì trong C. scanf là hàm ta sử dụng để có thể nhập dữ liệu từ bàn phím và ta thấy cú pháp để nhập

– scanf (“chuỗi định dạng”[, đối 1, đối 2,…]);chú ý đừng quên ký tự & trước mỗi biến nếu không sẽ sai.Chuỗi định dạng được đặt trong ngoặc kép: “ ” và các định dạng tương tự như khi chúng ta xuất dữ liệu. -Tương ứng với mỗi định dạng là một kiểu tương ứng, nếu khác kiểu sẽ dẫn đến sai sót. Và đó dễ hiểu thôi ta hàm scanf là hàm định dạng khi ta nhập liệu và khi sử dụng hàm phải khai báo tiền xử lý #include .

With the print is a output data output is format. Hiểu đơn giản là khi muốn xuất dữ liệu ra ta sử dụng hàm printf. Cú pháp printf (“chuỗi định dạng”[, mục 1, mục 2,…]); và lưu ý khi sử dụng hàm phải khai báo tiền . h> as scanf function. -Và printf. tên hàm, phải viết bằng chữ thường. – mục 1,…. is các mục dữ liệu cần thiết trong màn hình. Các mục này có thể là biến, hằng hoặc biểu thức phải được định giá trước khi in ra. – Format string. was set in cặp nháy kép (” “), bao gồm 3 loại. +chuỗi ký tự ghi như thế nào trong ra giống như vậy.

+các ký tự chuyển đổi định dạng cho phép xuất giá trị của các đối tượng ra màn hình tạm thời là mã định dạng

Thêm một khái niệm mà một nhà lập trình cũng cần quan tâm đó là chức năng C scanf. Trong quá trình nhận thông tin đầu vào của người dùng, không thể thiếu các ứng dụng tương tác như. trò chơi, hệ thống thời gian thực và các ứng dụng khác

Đầu vào điều này để quyết định việc thực thi các chức năng cụ thể của một hệ thống. Trong ngôn ngữ C, bất kỳ chương trình hay ứng dụng nào có giao diện dòng lệnh thì đều có thể sử dụng phương thức scanf cho mục đích này. Vậy chức năng C scanf là gì? . edu tìm hiểu nhé

Xem thêm. Hướng dẫn cách tạo Vector trong C chính xác nhất

Xem thêm. Các kiến ​​thức về trình biên dịch C Compiler cho Mac

Xem thêm. Hướng dẫn các chuỗi so sánh trong c strcmp

Mục lục bài viết

  • 1 Chức năng của hàm scanf C
  • 2 Cú pháp của hàm C scanf function
  • 3 Đặc điểm của quét hàm định dạng bộ định dạng
  • 4 Bộ định dạng các loại chức năng C scanf
    • 4. 1 Head code input
    • 4. 2 Đoạn mã sau khoảng trắng
  • 5 Các đối số bổ sung của hàm scanf
  • 6 Biến C scanf của hàm sscanf
  • 7 Chức năng của C Scanf instead
  • 8 Tổng kết

Chức năng của C scanf function

Quét c ++

Chức năng của C scanf function

Trên thực tế, chức năng scanf được biết đến với vai trò quan trọng trong các thao tác nhập dự kiến ​​dữ liệu từ người dùng thông qua các dòng lệnh của ứng dụng. Cụ thể mời các bạn cùng đọc thêm ở bài viết này

Phương thức C scanf này là một hàm nằm trong thư viện 'stdio'. It is used to read đầu vào được định dạng bao gồm. các ký tự, chuỗi và số liệu từ phương thức nhập chuẩn (stdin), thường là bàn phím. Mặc dù scanf nắm giữ một chức năng cực kỳ hữu ích trong các chương trình đơn giản hơn, nhưng nó lại không quản lý hiệu quả các lỗi bắt đầu xử lý của con người. Điều này làm cho hàm scanf của hàm C không đáng tin cậy và do đó chỉ nên được sử dụng để phát triển các chương trình đơn giản với mức độ tin cậy không cao.

Cú pháp của hàm C scanf function

Mỗi một lệnh trong chương trình lập trình ngôn ngữ sẽ có cú pháp riêng biệt mà bạn cần phải nắm lấy nó một cách chính xác nhất. Cụ thể đó là

#include 
int scanf (định dạng const char *, & biến, ...);

Để có thể sử dụng C scanf, thì bắt buộc phải có thư viện 'stdio' trong tệp mã nguồn. Bạn có thể thấy từ cú pháp của hàm C ‘scanf’ rằng đầu vào của người dùng được định dạng với một đối số ‘định dạng’. Định dạng hợp lệ sẽ được gán cho một đối số hay còn gọi là biến

Định dạng đối số của hàm C scanf chính là một chuỗi ký tự C, bao gồm một hoặc nhiều thành phần dưới đây

  • Number format format
  • Khoảng trắng ký tự
  • Các ký tự không có khoảng trắng

Khi thực hiện thành công chức năng C scanf, tổng số ký tự được đọc từ đầu vào cũng được trả về. Còn nếu nó không thành công, thì một giá trị âm thanh hoặc một EOF sẽ được trả về bởi hàm

Đặc điểm của quét hàm định dạng bộ định dạng

% [*] [width] [length_Modifier] type_Specifier

Định dạng hàm C scanf là sự kết hợp của các tham số đã được đề cập ở trên. Tất cả các thông số đều được bắt đầu bằng ký hiệu phần trăm (%). Sau đây là mô tả rút gọn về các định dạng nói duy nhất trên các công cụ có thể

  • Dấu '*' có thể hiện là một tùy chọn duy nhất, chỉ định rằng đầu vào của người dùng được đọc từ 'stdin' nhưng có khả năng bị loại bỏ và không được lưu lại
  • ‘Chiều rộng’ là một tham số tùy chọn cho biết số lượng tối đa từ tổng số ký tự đầu có thể đọc được từ ‘stdin’
  • Đầu ra ‘length_Modifiers’ là một mục tùy chọn khác và được sử dụng để chỉ ra loại chính xác cho đầu vào của người dùng, ví dụ như long ‘l’ không tồn tại các chữ cái chuyển đổi rõ ràng
  • Ngoài thuộc tính ‘type_Specifier’ là một ký tự chuyển đổi được sử dụng để chỉ loại dữ liệu thực tế được đọc từ ‘stdin’. Đầu vào của người dùng được chuyển đổi thành loại dữ liệu được cung cấp và đồng thời được gán cho các biến tương ứng

Định dạng các chức năng C scanf

Các loại định dạng hàm C scanf thường sẽ xác định loại đầu vào. Sau đây là một vài định nghĩa quan trọng và được sử dụng thường xuyên nhất.

  • Đầu tiên là chữ cái ‘c’ cho thấy đầu vào được chuyển đổi thuộc loại ‘char *’. Nó được sử dụng để đại diện cho một ký tự duy nhất. Nếu đầu vào của người dùng có độ dài lớn hơn một, thì chỉ có ký tự đầu tiên được đọc từ tất cả các đầu vào

Head code code in

ký tự c;
scanf ("% c", & c); //Thử nghiệm
printf ("Ký tự đầu tiên là% c \ n", c); // Ký tự đầu tiên là T
  • Tiếp theo là chữ cái ‘s’ đại diện cho một mảng ‘char *’. Nó chuyển đổi đầu thành một mảng ký tự và bỏ qua các ký tự sau khoảng trắng sau đó

White space code after

char firstName [50];
scanf ("% s", firstName); // John Doe
printf ("Tên được cung cấp là% s \ n", firstName); //John
// Các chữ cái 'd' và 'i' đại diện cho một số nguyên thập phân.
int i = 0;
scanf ("% d", & i); // - 21
printf ("Số đã nhập là% d \ n", i); // - 21
// Các chữ cái 'a', 'e', ​​'f' và 'g' là các chữ cái chuyển đổi đầu vào cho float và double.
float x;
scanf ("% f", & x); //21.12
printf ("Bạn% f tuổi. \ n", x); //21.120000
// Chữ cái 'x' nhận đầu vào của người dùng ở dạng số nguyên thập lục phân.
không dấu int i = 0;
scanf ("% x", & i); //MỘT
printf ("Giá trị thập phân là% i \ n", i); // 10

Các đối số bổ sung của hàm scanf

Quét c ++

Các đối số bổ sung của hàm scanf

Thông thường, các đối số bổ sung trong hàm scanf hàm C sẽ phụ thuộc vào số lượng từ định dạng trong chuỗi định dạng vì mỗi ký tự sẽ thực hiện lưu một phần của đầu vào. Do đó, nên sử dụng một số lượng bằng nhau giữa các từ định dạng và biến trong một hàm, nếu không thì hàm này có thể trả về kết quả không rõ ràng. Đoạn mã dưới đây sẽ minh họa cho việc sử dụng nhiều định dạng mã khác nhau

Tool code tool

không dấu int age = 0; int id; tên char [50];
printf ("Nhập Tên, Tuổi, ID và Mã Bảo mật \ n");
scanf ("% [^ \ n]% 2d% i% * d", tên, & tuổi & id);
printf ("Tên người dùng là% s \ n", tên);
printf ("Tuổi của% i. \ n", tuổi);
printf ("Với ID =% i. \ n", id);
Đầu vàoĐầu raJohn Doe2277999Tên người dùng là John Doe Tuổi 22 với ID = 77

Sscanf function variable C scanf

int sscanf(const char * inputStr, const char * định dạng, &biến,…);

Chức năng C scanf function và sscanf sẽ tương tự nhau về chức năng. Sự khác biệt duy nhất giữa cả hai là quét từ đầu chuẩn vào. Còn ngược lại, sscanf đọc đầu vào từ một chuỗi ký tự, được chuyển làm đối số đầu tiên cho hàm

Chức năng của C Scanf instead

Hàm C scanf không có khả năng phát hiện bộ đệm tràn. Do đó, khi bộ đệm được cung cấp đến giới hạn của nó, các ký tự đầu vào phần bổ sung sẽ ghi đè lên bộ nhớ hiếm khi xảy ra hiện tượng sử dụng. Ví dụ minh họa cụ có thể mời các bạn cùng theo dõi dưới đây

char nameWithSpace [5];
scanf ("% [^ \ n]", nameWithSpace); // John Doe
printf ("Tên đầy đủ là% s \ n", nameWithSpace); // John Doe

Đối với đoạn mã trên, kích thước bộ đệm là '5'. Nhưng thông tin đầu vào của người dùng có độ dài lớn hơn '5' sẽ làm tràn bộ đệm này. Một giải pháp thay thế tốt hơn ở dạng hàm 'fgets'. That is this function read a line from a stream are only include both header to standard

Có thể nói Scanf chính là một trong những hàm cơ bản nhất. Ngôn ngữ C và được sử dụng để thực hiện các thao tác nhập liệu cơ bản. Như nhận đầu vào chuỗi từ người dùng trong các dòng lệnh của ứng dụng. Để nghiên cứu sâu và kỹ hơn về ngôn ngữ C và chức năng cốt lõi của nó. Thì bạn cần dành thời gian tìm hiểu, trau dồi thêm những kiến ​​thức cần thiết. Kinh nghiệm nhiều hơn cho bản thân

Tổng kết

Hộp. edu hy vọng rằng những thông tin được chia sẻ về Chức năng C scanf . Trong ngôn ngữ lập trình này sẽ giúp các bạn nắm chắc những khái niệm cần thiết. Phục vụ cho quá trình học tập và nâng cao khả năng phân tích trong công việc của một thành viên lập trình. Như đã chia sẻ ở trên, quan trọng là bạn phải hiểu rõ bản chất của scanf. Để biết cách sử dụng nó một cách hiệu quả hơn phục vụ cho công việc của bản thân.

5 / 5 ( 4 bình chọn )

Facebook

Twitter

Pinterest

liên kết

Quét c ++

Hà Nguyên Phương

https. //hộp. giáo dục. vn/

Xin chào các bạn. Mình là Hà Nguyên Phương Hiện đang là tác giả của Box. giáo dục. vn website nổi tiếng chuyên đánh giá, đánh giá, giới thiệu các từ khóa học hay nhất hiện nay