C 学以致用(2)

1.负数求模运算

如果第一个运算对象是负数,那么求模结果为负数;如果第一个运算对象是正数,那么求模结果也是正数。

printf("%d %d\n",11/5,11%5);
printf("%d %d\n",-11/5,-11%5);
printf("%d %d\n",11/-5,11%-5);
printf("%d %d\n",-11/-5,-11%-5);

程序运行结果:

2 1
-2 -1
-2 1
2 -1

2.__cpluscplus宏的作用与运用

__cpluscplus宏的作用与运用

3.静态库和动态库的使用

静态库和动态库的使用

VS生成Dll但没有LIB文件解决方法

4.C或C++文件的调用处理

C++调用C函数

C代码如何调用C++

5._Bool类型

一般而言,所有的非零值都视为真,只有0被视为假。
C99新增了_Bool类型,头文件stdbool.h。在编程中,表示真或假的变量被称为布尔变量。所以_Bool是C语言中布尔变量的类型名。_Bool的变量只能储存1(真)或0(假)。如果把其他非零数值赋给_Bool类型的变量,该变量会被设置为1。

6.字符数组和字符串

一般而言,char类型数组的所有元素都储存char类型的值;如果char类型的数组末尾包含一个表示字符串末尾的空字符\0,则该数组中的内容就构成了一个字符串。

7.输入和输出

为什么要有缓冲区?
首先,把若干字符作为一个块进行传输比逐个发送这些字符节约时间。其次,如果用户打错字符,可以直接通过键盘修正错误。当做后按下Enter键时,传输的是正确的输入。
缓冲分为两类:完全缓冲I/O行缓冲I/O。完全缓冲输入是指当缓冲区被填满时才刷新缓冲区,通常出现在文件输入中,缓冲区的大小取决于系统,常见的大小是512字节和4096字节。行缓冲I/O指的是出现换行符时刷新缓冲区。键盘输入通常是行缓冲输入。
计算机操作系统要以某种方式判断文件的开始和结束。检测文件结尾的一种方式是,在文件末尾放一个特殊的字符标记文件结尾,比如Ctrl+Z字符。操作系统的另一种方法是储存文件大小的信息。如果文件有3000字符,程序在读到3000字节时便达到文件的末尾。
无论操作系统实际使用何种方法检测文件末尾,在C语言中,用getchar()读取文件检测到文件末尾时将返回一个特殊的值,即EOF(End Of File)。通常,EOF定义在stdio.h文件中:

#define EOF (-1)

为什么是-1?因为getchar()函数返回值通常介于0-127,这些值对应标准字符集。但是,如果系统能识别扩展字符集,该函数的返回值可能在0-255之间。
无论哪种情况,-1都不对应任何字符,所以,该值可用于标记文件末尾。
那么,如何在程序中使用EOF?把getchar()的返回值和EOF作比较,如果两值不同,就说明没有到达文件结尾。

while((ch=getchar())!=EOF)
#include <stdio.h>
//读取字符并显示
int main(){
int ch;
while((ch=getchar())!=EOF)
putchar(ch);
return 0;
}

8.重定向和文件

重定向的一个主要问题与操作系统有关,与C无关。
重定向输入让程序使用文件而不是键盘来输入,重定向输出让程序输出至文件而不是屏幕。
重定向运算符连接一个可执行程序和一个数据文件,不能用于连接一个数据文件和另一个数据文件,也不能用于连接一个程序和另一个程序。
使用重定向运算符不能读取多个文件的输入,也不能把输出定向至多个文件。
"<"符号是UNIX和DOS/Windows的重定向符。
“>” 符号是重定向输出符号。
在一条命令中,输入文件名和输出文件名不能相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值