Linux笔记 --- 程序入门

‘\n’换行符

        通常来讲我们都是使用这个符号来进行换行的操作,但是这个符号不仅仅是用于换行

        当标准输出文件中默认使用缓冲 ,也就是当遇到 \n 的时候会进行刷新缓冲区(把数据输 出)

        当打印语句后面没有换行符时 , 需要等待缓冲区被装满或者被别的语句刷新程序正常退出

在此我们可以进行一个实验进行尝试:

#include <stdio.h>
#include <unistd.h>
int main ()
{while(1){printf("hello imawode");sleep(1);}return 0;
}

 此时我们不使用换行符,在每次打印之后加入一个一秒的睡眠,此时使用gcc进行编译和输出,我们发现完全没有打印任何东西,因为此时没有足够的程序填满缓冲区同时程序也运行不到return中结束,因此在等待填满缓冲区,那么假如我们加上换行符

#include <stdio.h>
#include <unistd.h>
int main ()
{while(1){printf("hello imawode\n");sleep(1);}return 0;
}

此时再进行编译运行则就会以1秒的间隔输出内容了

调试技巧

printf("%s‐‐%s‐‐%d\n" , __FILE__ , __FUNCTION__ , __LINE__ );

在程序中不同的位置加入此语句可以看到此时运行到哪个文件的哪一个函数了,借此可以看到是否卡死

GCC编译器

gcc编译器的部分用途,这些都是比较常用的方式

$ gcc Hello.c // 使用gcc 编译 Hello.c 并且默认生成一个名为 a.out的可执行文件
$ gcc Hello.c ‐o TieZhu // 使用gcc 编译Hello.c 并且指定生成名字为TieZhu 的可执行文件
$ gcc Hello.c ‐o TieZhu ‐v // ‐v 输出编译的信息, 包括头文件寻找的路径
$ gcc Hello.c ‐o TieZhu ‐I/mnt/d/ ‐v // ‐I 指定头文件寻找的路径(在原本默认的基础上添加)
$ gcc Hello.c ‐Wall // 输出所有的警告

VIM编辑器

vim编辑器有三种模式:命令模式、编辑模式、尾行模式

命令模式:可进行部分命令,例如复制剪切删除等等

编辑模式:可以编辑文件内容

尾行模式:用于保存退出等等操作

        默认使用vim打开文件处于命令模式

        输入 ‘:’ 则会进入尾行模式

尾行模式部分常用操作

w ‐‐> 保存文件(写入到磁盘)
q ‐‐> 退出
! ‐‐> 强制退出
q! ‐‐> 不保存退出
wq ‐‐> 保存并退出
w Even.c ‐‐> 把当前文件另存为 Even.c

尾行模式下按esc即可退出尾行模式回到命令模式

在命令模式下输入以下字母进入编辑模式

i :  在光标的前面进行插入(编辑)
I :  光标跳到当前行的行首进行插入
o:   在当前光标的下一行新建一行进行插入
O:   在当前光标的上一行新建一行进行插入
a:   在光标的后面进行插入(编辑)
A:   光标跳到当前行的行尾进行插入

编辑模式下按esc即可退出尾行模式回到命令模式

命令模式常用命令

 

标注输出(格式化输出)

        概念:终端对应的就是标准输出的设备文件,如果往该文件中输出内容则可以称为标准输出

        注意事项

        % 必须有的,格式化的开头标记

        -    对齐的方式, 向左对齐(空格在右) ,如果没有则是向右对齐

        m.n   m指的域宽(总共需要的字符数),n 指的是精度(小数点后位数默认精度为6),m 的值如果比实际数据小则按实际输出,反之则用空格来填补

        l     指的是 long 表示长整型

        h   指的是短整型 

格式控制符

        进制的整型: %d   %md    %ld      %u (无符号)   %lu

        八进制: %o  %#o     # --> 输出进制的符号

        十六进制: %x  %#x   %#X    0x -->表示16进制

        字符:  %c

        字符串: %s

        单精度浮点: %f    %.nf  --> n 表示精度

        双精度:  %lf

        长双精度 : %Lf 

        地址: %p 

        

printf("%d\n" , 0123 );   // 使用十进制的格式来输出一个八进制数据  0123‐‐>83
//在计算机中输入的数字前加0代表此数字为8进制数
printf("%o\n" , 0123 ); // 使用八进制的格式来输出一个八进制数据  0123‐‐>123

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3270194.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

强烈推荐这 3 款让你用一次就爱上,永不想删除的软件

IcecreamPDFEditor IcecreamPDFEditor是一款功能强大的PDF编辑工具&#xff0c;具备多种编辑和查看PDF文件的功能。这款软件不仅可以方便地阅读和查看各种PDF文件&#xff0c;还可以进行编辑操作。它拥有编辑文本、注释添加、页面管理以及PDF文件保护等功能。 用户可以通过下载…

JS逆向高级爬虫

JS逆向高级爬虫 JS逆向的目的是通过运行本地JS的文件或者代码,以实现脱离他的网站和浏览器,并且还能拿到和浏览器加密一样的效果。 10.1、编码算法 【1】摘要算法&#xff1a;一切从MD5开始 MD5是一个非常常见的摘要(hash)逻辑. 其特点就是小巧. 速度快. 极难被破解. 所以,…

ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)

一、简介 1.1、软件简介 ELK其实是Elasticsearch&#xff0c;Logstash 和 Kibana三个产品的首字母缩写&#xff0c;这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…

研究生选择学习Android开发的利与弊?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Android的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;产品经理可以学学Axure快…

简单的CSS样式

样式分为三种 内部样式&#xff1a;写在html文件里的样式叫内部样式 内联样式&#xff1a;写在需要的标签中 外部样式&#xff1a;写在外部css文件里 可以通过不同的选择器来选择设置指定组件的样式&#xff1a; <style>/* 写在html文件里的样式叫内部样式 *//* 选择器 *…

6.3 面向对象技术-设计模式

设计模式 创建型模式 结构型模式

C++ unordered_map

1. unordered系列关联式容器 在C98 中&#xff0c; STL 提供了底层为红黑树结构的一系列关联式容器&#xff0c;在查询时效率可达到 &#xff0c;即最差情况下需要比较红黑树的高度次&#xff0c;当树中的节点非常多时&#xff0c;查询效率也不理想。最好的查询是&#xff0c…

我在百科荣创企业实践——简易函数信号发生器(6)

对于高职教师来说,必不可少的一个任务就是参加企业实践。这个暑假,本人也没闲着,报名参加了上海市电子信息类教师企业实践。7月8日到13日,有幸来到美丽的泉城济南,远离了上海的酷暑,走进了百科荣创科技发展有限公司。在这短短的一周时间里,我结合自己的教学经验和企业的…

Leetcode 剑指 Offer II 088.使用最小花费爬楼梯

题目难度: 简单 原题链接 今天继续更新 Leetcode 的剑指 Offer&#xff08;专项突击版&#xff09;系列, 大家在公众号 算法精选 里回复 剑指offer2 就能看到该系列当前连载的所有文章了, 记得关注哦~ 题目描述 数组的每个下标作为一个阶梯&#xff0c;第 i 个阶梯对应着一个非…

5 Java的基本程序设计结构(基本语法4)- 集合之ArryList 和什么是包装类?

文章目录 前言一、集合二、基本数据类型的包装类三、ArryList1 ArryList对象的创建2 ArryList常见成员方法(1)boolean add(E e) : 添加元素,返回值表示是否添加成功(2)void add(int index, E e) :在指定索引位置插入元素。(3)boolean remove(E e) : 删除第一个指定元素…

从json到protobuf,接口效率的提升

在express开发的前后端调用中&#xff0c;express作为接收方是不二之选&#xff0c;它有一些很好用的body解析器来解析传入数据&#xff1b;而作为请求发起方&#xff0c;axios是非常方便的&#xff0c;这是一个很好的选择&#xff0c;它可以传输多种类型的数据给接收方。 通常…

Tekion 选择 ClickHouse Cloud 提升应用性能和指标监控

本文字数&#xff1a;4187&#xff1b;估计阅读时间&#xff1a;11 分钟 作者&#xff1a;ClickHouse team 本文在公众号【ClickHouseInc】首发 Tekion 由前 Tesla CIO Jay Vijayan 于 2016 年创立&#xff0c;利用大数据、人工智能和物联网等技术&#xff0c;为其汽车客户解决…

Week 3 DAY 6

Product C - Product (atcoder.jp) 一共N层&#xff0c;对于每一层的每个数&#xff0c;都遍历上一层更新过后的结果&#xff0c;更新为新的结果&#xff0c; 比如样例&#xff1a; 2 40 3 1 8 4 2 10 5动态数组a表示储存上一层除后留下来的数&#xff0c; 第一次a数组中只…

关于开源项目分享的通知

后续会逐步分享更多好用的开源项目&#xff0c;加入圈子&#xff1a; 圈子加入https://pc.fenchuan8.com/#/index?forum86631&yqm5EV39扫码加入&#xff1a;

初识git工具~~上传代码到gitee仓库的方法

目录 1.背景~~其安装 2.gitee介绍 2.1新建仓库 2.2进行相关配置 3.拉取仓库 4.服务器操作 4.1克隆操作 4.2查看本地仓库 4.3代码拖到本地仓库 4.4关于git三板斧介绍 4.4.1add操作 4.4.2commit操作 4.4.3push操作 5.一些其他说明 5.1.ignore说明 5.2git log命令 …

日拱一卒 | JVM

文章目录 什么是JVM&#xff1f;JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM&#xff1f; 我们知道Java面试&#xff0c;只要你的简历上写了了解JVM&#xff0c;那么你就必然会被问到以下问题&#xff1a; 什么是JVM&#xff1f;简单说一下JVM的内存模型&#xff1f;…

电脑系统安装软件,让系统安装变得更简单。

电脑原版操作系统下载&#xff1a;MSDN系统库 电脑U盘装机pe系统&#xff1a;优启通或微PE工具 驱动安装&#xff1a;360 驱动大师 电脑装机常用软件下载&#xff1a;https://www.bgrdh.com/favorites/7875.html

do while打印1~10

#include<stdio.h> int main() {int i 1;do{printf("%d", i);i;} while (i < 10);return 0; }

【JUC】LockSupport线程等待唤醒

文章目录 LockSupport线程等待唤醒机制三种让线程等待和唤醒的方法Object类中的wait和notify方法实现线程等待和唤醒Condition接口中的await和signal方法实现线程的等待和唤醒上述两种方法使用限制条件LockSupport类中的park等待和unpark唤醒LockSupport 是什么主要方法代码测试…

网易云音乐黑胶VIP会员免费领取入口直达词令是什么?

网易云音乐黑胶VIP会员免费领取是指网易云音乐VIP会员根据不同的等级尊享不同的权益&#xff0c;其中赠送礼品卡就是其一。不同等级的网易云音乐VIP会员可赠送的7天黑胶VIP会员张数不同&#xff0c;但是由于数量有限&#xff0c;每次更新后先领先得&#xff0c;我们将不定期根据…