c语言笔记typedef与输出输入

一typedef

1.1概述

:C 语言提供了 typedef 关键字,可以使用它来为类型取一个新的名字

示例:我们可以看到这里 我们将unsigned char 新起一个名字为 BYTE 后面我们定义此类型的变量的时候就可以使用BYTE

cs 复制代码
typedef unsigned char BYTE;
cs 复制代码
BYTE  b1, b2;

那在起了新名字之后 unsigned char 是否可以使用呢?

cs 复制代码
#include <stdio.h>
int main() 
{
    typedef unsigned char BYTE;
    unsigned char a='a';
    BYTE b='b';
    printf("%c\n",a);
    printf("%c\n",b);
}

我们可以看到是可以使用的 我们在使用typedef的时候并不会影响到原来的类型使用 只是起了新名方便我们使用。

当然也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,您可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量

示例:这里提醒大家一下 strcpy的函数头文件在string.h

cs 复制代码
#include <stdio.h>
#include <string.h>
typedef struct BOOK
{
    char name[50];
}Book;
int main() 
{
    Book book;
    strcpy(book.name,"pxd");
    printf("name:%s\n",book.name);
    return 0;
}

1.2 typedef vs #define

#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:

  • typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。
  • typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

二输出和输入

当我们提到输入时,这意味着要向程序填充一些数据。输入可以是以文件的形式或从命令行中进行。C 语言提供了一系列内置的函数来读取给定的输入,并根据需要填充到程序中。

当我们提到输出时,这意味着要在屏幕上、打印机上或任意文件中显示一些数据。C 语言提供了一系列内置的函数来输出数据到计算机屏幕上和保存数据到文本文件或二进制文件中

其实我们只需要介绍几个函数的使用,比如我们经常使用到的printf就是输出函数 可以输出需要的内容到屏幕之上。我们将分三组进行分别的介绍

2.1scanf和printf

2.1.1 scanf

概述:用于从标准输入(键盘)读取并格式化 简单来说就是我们从键盘上键入的值将到程序中使用

基本格式:

cs 复制代码
  scanf(格式化字符串,参数列表);

我们来通过示例来看:

cs 复制代码
#include <stdio.h>
#include <string.h>
int main() 
{
    int a;
    char b;
    char name[5];
    scanf("%d",&a);
    scanf("%s %c",name,&b); 
    printf(":%d\n",a);
    printf(":%c\n",b);
    printf(":%s\n",name);
    return 0;
}

这里我们需要注意的是一般是使用回车来结束一个scanf语句 在需要连续输入的时候格式控制符中间是空间 那我们键入的时候 键入一个值 后面就必须跟一个空间再键入第二个值

2.1.2 printf

cs 复制代码
printf("格式控制字符串",输出列表);

其中普通字符全部原样输出 其中a=就是普通字符 %d是格式控制符 即a输出在屏幕上的位置

cs 复制代码
int a;
printf("a=%d\n",a);

getchar() & putchar() 函数

int getchar(void) 函数从屏幕读取下一个可用的字符,并把它返回为一个整数。这个函数在同一个时间内只会读取一个单一的字符。您可以在循环内使用这个方法,以便从屏幕上读取多个字符。

int putchar(int c) 函数把字符输出到屏幕上,并返回相同的字符。这个函数在同一个时间内只会输出一个单一的字符。您可以在循环内使用这个方法,以便在屏幕上输出多个字符。

请看下面的实例:

实例

cs 复制代码
#include <stdio.h>
 
int main( )
{
   int c;
 
   printf( "Enter a value :");
   c = getchar( );
 
   printf( "\nYou entered: ");
   putchar( c );
   printf( "\n");
   return 0;
}

当上面的代码被编译和执行时,它会等待您输入一些文本,当您输入一个文本并按下回车键时,程序会继续并只会读取一个单一的字符,显示如下:

复制代码
$./a.out
Enter a value :runoob

You entered: r

gets() & puts() 函数

char *gets(char *s) 函数从 stdin 读取一行到 s 所指向的缓冲区,直到一个终止符或 EOF。

int puts(const char *s) 函数把字符串 s 和一个尾随的换行符写入到 stdout。

实例

cs 复制代码
#include <stdio.h>
 
int main( )
{
   char str[100];
 
   printf( "Enter a value :");
   gets( str );
 
   printf( "\nYou entered: ");
   puts( str );
   return 0;
}

我们最经常用的还是printf

相关推荐
布莱克6051 小时前
C/C++ 中变量的声明与定义:区别、联系与常见误区
c语言·开发语言·c++·声明·定义
LabVIEW开发2 小时前
LabVIEW 局部变量为何引发竞争条件?四种同步机制
开发语言·labview
benchmark_cc2 小时前
A 股、港股、美股如何建立统一的标的主数据格式?
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
前进的李工3 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
Zenova EdgeOS4 小时前
Go 工业边缘错误处理实战:用 errors 构建可追溯错误链
开发语言·数据库·golang
取名真是4 小时前
Python 算法知识点从基础到进阶
开发语言·python·算法
FRing034 小时前
vue2干货总结3(computed计算属性、watch监听器)
开发语言·前端·vue.js·vue2
Fatbobman(东坡肘子)5 小时前
快速消失的硬盘容量 -- 肘子的 Swift 周报 #160
开发语言·人工智能·redis·ios·swiftui·iphone·swift
揽星河..5 小时前
【C语言】底层程序设计
c语言·开发语言
JavaPub-rodert5 小时前
从零搭建通用管理后台:ShiyuAdmin 的 Go、React 与 RBAC 实践
开发语言·react.js·golang