C語言入門5-鍵盤的輸入和屏幕輸出


C程序中的鍵盤輸入和屏幕輸出都是通過  調用輸入/輸出函數  實現的。

一、數據的格式化    屏幕輸出

函數printf()的一般格式  (有兩種)

(1)第一種:

printf(格式控制字符串);

printf ( “請輸入a的值” ); 

(2)第二種

printf(格式控制字符串     ,     輸出值時參數表);//  就是變量名字

printf(“您輸入的a的值是:%d”,   a );

格式控制字符串(format string)是 用雙引號括起來的字符串,也稱  轉換控制字符串,

輸出值參數表可有多個輸出值,也可沒有(只輸出一個字符串時)。

***   格式控制字符串包括兩部分:

需原樣輸出的普通字符   和    格式轉換說明(Format Specifier)        %d  %f   %c

printf( “您輸入的a的值是:%d”,   a );

如表4—2所示,格式轉換說明有%開始,並以轉換字符(Conversion Character)結束,用於指定各輸出值參數的輸出格式。

這里,下面兩條語句的作用是等價的。

printf(“%c”,ch);

putchar(ch);

而下面兩條語句的作用也是等價的。

printf(“\n”);

putchar(‘\n’);

二、數據的格式化鍵盤輸入

(1函數scanf(  )的一般格式

     scanf(格式控制字符串,參數地址表);

scanf (“%d”,          &a);

Scanf(“%d   %d” ,    &a , &b)

 其中,格式控制字符串是用雙引號括起來的字符串,它包括格式轉換說明符和分隔符兩個部分。

參數地址表是   由若干變量的地址組成的列表,   這些參數之間用 逗號 分隔。

函數scanf( )要求必須指定  用來接收數據的變量的地址,否則數據不能正確讀入指定的內存單元。

必須有  &  符號   ****

  1. 1.        函數scanf()中的格式修飾符

與prinf()類似,在函數scanf()的%和格式符中間也可插入格式修飾符。

在用函數scanf()輸入數值型數據時,遇到以下幾種情況都認為數據   輸入結束:

(1)遇空格符,回車符,制表符(TAB

(2)達到輸入域寬; 

(3)遇非法字符輸入 

注意,  

如果函數scanf( )的格式控制字符串存在  除格式說明符   以外的其他字符,

那么這些字符必須在輸入數據時由  用戶從鍵盤原樣輸入。********

代碼講解:

void main()

{

 int a;

 printf("請輸入a的值");

 scanf("此處是a  %d",&a);

 printf("你好,你輸入的a的值是%d",a);

}

使用函數scanf()時忘記在   變量前面加上取地址運算符& ,

以指定用來接收數據的變量的地址,

這是一個初學者常犯的錯誤。

三、轉義字符

函數scanf()的格式轉換說明符(如表4-4所示)通常由%開始,並以一個格式字符結束,用於指定各參數的輸入格式。

格式轉換說明

用法

%d

輸入十進制整數     

%c

輸入一個字符,空白字符(包括空格、回車、制表符)也是有效字符

%s

輸入字符串,遇到空白字符(包括空格、回車、制表符)時,系統認為讀入結束。

%f

輸入實數、以小數或指數形式輸入均可

%%

輸出百分號%%

常用函數printf(  )    的格式轉換說明

格式轉換說明

用法

%d

輸出帶符號的十進制整數,正數的符號省略       

%c

輸出一個字符

%s

輸出字符串

%f

以十進制小數形式輸出實數

%%

輸出百分號%

 

四、單個字符的輸入/輸出 *****

     (多個字符的輸入輸出,需要用到字符數組,這個知識會在C語言精髓里面學習)

  1. 1.        字符常量

C語言中的  

字符常量是用單引號括起來的一個字符。

例如,‘a’是字符常量,     而a則是一個標識符。

再如,‘3’表示一個字符常量,而3則表示一個整數。

C語言中還引入了  另外一種特殊形式的字符常量     轉義字符(Escape Character),

它是以反斜線(\)開頭的字符序列,它有特定的含義,用於描述特定的控制字符,

使用時  同樣要放到一對單引號內。常用的轉義字符如’\n’,’\t’  

轉義字符表如下表。

 

字符

含義

字符

含義

‘\n’

換行

‘\a’

響鈴報警提示聲

‘\r’

回車(不換行)

‘\“‘

一個雙引號

‘\0’

空字符,通常用做字符串結束標志

‘\’’

單引號

‘\t’

水平制表

‘\\’

一個反斜線

‘\v’

垂直制表

‘\?’

問號

‘\b’

退格

‘\ddd’

1到3位八進制ASCII碼值所代表的字符

‘\f’

走紙換頁

‘\xhh’

1到2位十六進制ASCII碼值所代表的字符

 

與’\n’不同的是的,’\r’則表示回車,但不換行,即將廣播移到當前行的起始位置。

而’\t’為水平制表符,相當於按下TAB鍵。

另外值得注意的是:轉義序列  出現在字符串中時,是按單個字符計數的。

例如,字符串”abc\n“的長度是4而非5  因為字符’’\n’代表1個字符。

例如,字符’A’在內存中存儲的是其ASCII碼65的二進制值,存儲形式與整型數65類似,只是在內存中所占的字節數不同而已。

char型數據占1個字節。

在ASCII碼取值范圍內,對char型數據和int型型數據進行相互轉換不會丟失信息,二者可以進行混合運算。同時,一個char型數據既能以字符型格式輸出,也能以整型格式輸出,以整型格式輸出時就是直接輸出其ASCII碼的十進制值。

  1. 2.        字符的輸入/輸出

getchar()  putchar()     是C標准  函數庫中  專門用於   字符輸入/輸出的函數。

函數putchar( )的作用是把  一個字符  輸出到   屏幕的當前廣播位置。

函數getchar( )的作用是從   系統隱含指定的輸入設備(即鍵盤)  輸入一個字符, 

按回車鍵表示輸入結束,   讀入的字符會自動被回顯到屏幕上。

即小寫英文字母的ASCII碼值比相應的大寫英文字母的ASCII碼值大32,

注意,函數getchar()沒有參數 , 函數的返回值就是從終端鍵盤讀入的字符。

函數putchar()的參數就是待輸出的字符,這個字符既可以是可打印字符,也可以是轉義字符。

查看下方代碼,找出代碼輸出的是什么?

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i,g,s,b,q,x,y=0,sum=0;//i是一個5000一下的自然
   for (i=1000;i<+5000;i++)
   {
       g=i%10;
    s=i%100/10;
    b=i%1000/100;
    q=i/1000;
       
       
       x=q+b;//千位與百位之和
   
   if(x==s+g&&x==10*(g-q))
   {    y=y+1; }}
 printf("共有符合條件的數%d個。\n",y);
 printf("分別為:\n");
 for (i=1000;i<+5000;i++)
   {
       g=i%10;
    s=i%100/10;
    b=i%1000/100;
    q=i/1000;
       
       
       x=q+b;//千位與百位之和
   
   if(x==s+g&&x==10*(g-q)){
   printf("%d\t",i);
   sum+=i;
   }
   


   }
   printf("\n其和為:%d",sum);
   }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM