嵌入式开发学习———Linux环境下C语言学习(一)
摘要:本文介绍了在Ubuntu系统中使用vim和gcc进行C语言编程的基础知识,重点讲解了scanf函数的使用方法。内容包括scanf的基本格式控制、不同类型变量的输入处理,以及处理输入缓冲区的三种方法:严格控制格式、使用getchar()和%*c抑制字符。文章通过具体代码示例展示了这些技术的实际应用,为Linux环境下C语言初学者提供了实用的编程参考。
Ubuntu 终端常用指令
文件与目录操作ls
:列出目录内容cd
:切换目录pwd
:显示当前目录路径mkdir
:创建新目录rm
:删除文件或目录(-r
递归删除)cp
:复制文件或目录mv
:移动或重命名文件
权限管理chmod
:修改文件权限(如 chmod 755 file
)chown
:修改文件所有者
系统信息uname -a
:查看系统信息df -h
:显示磁盘空间top
:实时监控系统资源
网络相关ping
:测试网络连接ifconfig
:查看网络接口(需安装 net-tools
)wget
或 curl
:下载文件
包管理sudo apt update
:更新软件包列表sudo apt install <package>
:安装软件sudo apt remove <package>
:卸载软件
Vim 编辑器基础指令
模式切换
普通模式→插入模式:按 i
或 a
插入模式→普通模式:按 Esc
保存与退出:w
:保存文件:q
:退出(未修改时):wq
或 :x
:保存并退出:q!
:强制退出不保存
文本编辑
删除一行:dd
复制一行:yy
粘贴:p
撤销:u
搜索:/keyword
,按 n
跳转到下一个匹配
GCC 编译器使用
基本编译gcc hello.c -o hello
:编译 hello.c
生成可执行文件 hello
调试信息gcc -g hello.c -o hello
:生成带调试符号的可执行文件
优化选项-O1
/-O2
/-O3
:不同级别的优化(如 gcc -O2 hello.c
)
多文件编译gcc main.c utils.c -o program
:编译多个源文件
静态与动态库
静态库:gcc -static hello.c -o hello
动态库:默认链接动态库(需 .so
文件在系统路径中)
以上指令覆盖了日常开发中的基础操作,可根据实际需求进一步扩展。
标准输入输出函数概述
C语言的标准输入输出(I/O)函数主要通过stdio.h
头文件提供,用于处理与终端、文件等的数据交互。以下分类介绍常用函数及其用法。
格式化输入输出
printf
用于格式化输出到标准输出(通常是屏幕)。
语法:
int printf(const char *format, ...);
示例:
printf("Value: %d, Float: %.2f\n", 42, 3.14159);
scanf
用于从标准输入(通常是键盘)读取格式化数据。
语法:
int scanf(const char *format, ...);
示例:
int num;
scanf("%d", &num);
字符输入输出
getchar
从标准输入读取一个字符。
语法:
int getchar(void);
示例:
char c = getchar();
putchar
向标准输出写入一个字符。
语法:
int putchar(int c);
示例:
putchar('A');
注意事项
使用scanf
时需注意缓冲区溢出风险,建议指定读取长度(如%10s
)。
通过合理组合这些函数,可以完成复杂的输入输出需求。
scanf函数的使用
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a;
long int b;
float c;
char d;
scanf("%d",&a);
scanf("%ld",&b);
scanf("%f",&c);
scanf("%c",&d);
printf("a=%d\n",a);
printf("b=%ld\n",b);
printf("c=%f\n",c);
printf("d=%c\n",d);
return 0;
}
scanf严格控制格式
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a;
long int b;
float c;
char d;
scanf("%d,%ld,%f %c\n",&a,&b,&c,&d);
printf("a=%d\nb=%ld\nc=%f\nd=%c\n",a,b,c,d);
return 0;
}
scanf吸收垃圾字符
有三种方法:1.利用scanf严格控制格式(最推荐)
2.利用getchar()吸收一个字符
3.利用抑制字符%*c吸收一字符
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a,b,c,d;
scanf(" %c %c %c %c",&a,&b,&c,&d);
printf("a=%c\nb=%c\nc=%c\nd=%c\n",a,b,c,d);
return 0;
}
更多推荐
所有评论(0)