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

相关推荐
Serendipity-Solitude5 分钟前
c++中的数学函数库(少)
开发语言·c++
mercyT15 分钟前
Kotlin学习笔记之类与对象
笔记·学习·kotlin
啥都想学的又啥都不会的研究生32 分钟前
Redis设计与实现-服务器中的数据库
运维·服务器·数据库·redis·笔记·缓存·性能优化
Vacant Seat1 小时前
图论-实现Trie(前缀树)
java·开发语言·数据结构·图论
猪猪虾的业余生活1 小时前
Qt 驾校考试系统项目实现
开发语言·qt
香菇滑稽之谈1 小时前
责任链模式的C++实现示例
开发语言·c++·设计模式·责任链模式
蜕变的土豆1 小时前
二、重学C++—C语言核心
c语言·c++
风莫寻2 小时前
【Troubleshot】Qt 长按按键 keyPressEvent keyReleaseEvent 自动重复问题
开发语言·qt
ZC·Shou2 小时前
Rust 之一 基本环境搭建、各组件工具的文档、源码、配置
开发语言·rust·cargo·rustc·rustup·clippy·rustfmt
Hello.Reader2 小时前
深入理解 Rust 中的模式匹配语法
开发语言·rust