杂记:学习C语言时的一些学习记录

本篇为杂记若有需要的内容使用ctrl+f进行关键词查找

怎么输出"%"字符

int main(void)
{
	printf("输入%%d %%c %%c zhangsan%%d\n");
	return 0;
}

在前面加%即可

各参数控制符含义

%d是按照十进制整数形式输出
%nd中的n表示有效数字的位数;
%c是按照字符型输出;
%f是按照浮点数输出;
%lf是按照长浮点数输出;
%o是按照八进制输出;
%x是按照16进制输出;
%e是按照科学计数法输出结果

怎么使输出内容输出固定长度并设置左对齐右对齐

printf(%5d”); // 每个占五个字符的位置,然后右对齐
printf(%-5d”);// 每个占五个字符的位置,然后左对齐

怎么使程序运行完不自动关闭

头文件添加
#include <stdlib.h>

主函数main在return 0之前添加
system(“pause”)

加"#"表示以进制原型输出

仅在输出#o或#x或#X时有用(八进制,十六进制),作用是使输出的内容带上进制的前缀

例如对八进制数11	使用%o输出11,使用%#o则输出017)
例如对十六进制数1A	使用%x输出1a,使用%#x则输出0x1a

连用两个scanf导致第二个参数获取不到值

char ch,ch2;
scanf("%c",&ch);
scanf("%c",&ch2);
printf("ch = %c\n",ch);
printf("ch2 = %d\n",ch2);

结果出错,第二个变量获取不到值

解决:
方法一:把第一个scanf 改成 scanf ("%c\n", &ch);

方法二:在第一个scanf 后添加下面的语句
fflush (stdin);

方法三:在puts ("再输入一个字符");语句下面添加下面的语句
while (getchar () != '\n');

方法四:在scanf()的%d前加空格

为什么输入时要加&但是输出时候不要

存储的数据存储在内存空间里,scanf是个输入函数,&(取地址符号)意味着在你输入数据后取变量的地址为存储对象。

输出时%d表示数据的输出形式,数据在存储空间内以二进制存储,不同的读取方式会有不同的结果,print是输出函数,输出变量地址的值。

在while中使用scanf注意点

#include <stdio.h>
int main(void)
{
	char ch = '1';
	while (ch != 'n')
	{
	float score;
	printf("请输入你的成绩:");
	scanf("%f",&score);
	printf("是否重新输入?(y|n):");
	scanf("\n%c",&ch);
	}
	return 0;
}
如上程序代码,若没有在scanf("\n%c",&ch);中加入\n,则程序在执行到scanf("%f",&score);时将\n当作一个字符处理,那么ch会得到一个错误的随机的值所以在回车后不询问你是否需要重新输入直接开始下次循环
方法1:在scanf里的输入控制符前加\n

方法2:printf("请输入你的成绩:");后添加下面的语句
fflush (stdin);

方法三:printf("请输入你的成绩:");下一行添加下面的语句
while (getchar () != '\n');

使用#计算时正负取决于被除数

5 % 2 = 1
5 % -2 = 1
-5 % 2 = -1
-5 % -2 = -1

怎么使运算返回实数

1.	sum = sum + 1.0/i;
2.	sum = sum +(float)(1.0/i);
3.	sum = sum + 1/(float)i
4.	sum = sum + 1.0 * 1 / i;//1.0默认为double型可能报错
错误:
	sum = sum + (float)(1/i);

LNK2005:main already define in

你使用vc++6.0已经编译一个cpp文件且包含main()这时你不关闭这个窗口继续用这个没关闭的vc++6.0打开另一个含有main()的文件并编译就会发生

多行退格

shift+tab

自动补齐

alt+f8

文件名不能包含的字符

\
/
:
*
?<
>
|

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值