一、 C
在使用printf输出或者scanf输入时需要引头文件“stdio.h”
1、printf
相信这是大多数编程小白的第一个程序吧,至少我当初是哈哈哈哈哈,当时还很有成就感来着。
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
输出
Hello World!
如果需要输出一个变量的值该怎么操作呢?
#include <stdio.h>
int main()
{
int a=1;
printf("给可怜的码字人%d个赞吧!",a);
return 0;
}
输出
给可怜的码字人1个赞吧!
(疯狂暗示!!!!!)
printf 将输出引号内的内容,想要在哪里输出变量值只需要用%加对应类型字符占据该位置即可。像上面的例子, d 就是整形变量对应的类型字符(其他类型字符在下文会提到)。
此外,输出内容与变量名之间用“,”隔开,注意是英文逗号啊,输出到屏幕时a的值将会替换掉%d。
那么输出两个变量的值该怎么操作呢,你应该猜到啦!
#include <stdio.h>
int main()
{
int a=1;
int b=1;
printf("给可怜的码字人 %d 个赞和 %d 个收藏吧!",a,b);
return 0;
}
输出
给可怜的码字人 1 个赞和 1 个收藏吧!
特别地,可以看到空格是可以输出的,只要在引号内。
由此可以总结出printf 的输出套路:
printf(“需要输出的文字内容和类型字符”,变量名,变量名,···);
类型字符
类型字符 | 对应数据类型 |
---|---|
d | int |
lld | long long(8字节) |
c | char |
s | 字符串 |
f | float |
lf | double |
2、scanf
#include <stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("a=%d",a);
return 0;
}
输出
7
a=7
scanf的输入套路:
scanf(“%类型字符%类型字符···”,&变量名,&变量名,···);
与printf 类似的,需要用引号引住需要输入的内容,在引号中,变量用%加对应类型字符替代,输入内容和变量名之间用逗号隔开。
但不同的是,输入时,变量名前面要加一个“&”(取址符),&a代表取a的地址,要通过这个地址找到a在内存中的位置,再把从键盘输入的值放到a中,因此需要加一个取址符。
至于为什么printf输出时不需要加取址符,我是这样理解的:
如果你有一瓶果酱,它就在你手里,那你现在就可以吃掉;但如果你想抹在面包上吃,面包又在冰箱里,那你就要先走到冰箱附近然后拿出面包,才可以吃上果酱面包。
二、C++
cout是标准输出流,cin是标准输入流,使用时需要引有文件"iostream"
1、cout
cout的输出套路
cout<<```<<``;
#include <iostream>
using namespace std;
int main()
{
cout<<"好饿52好饿"<<endl; //endl是换行符
int a=52;
cout<<"好饿" <<a<<"好饿" <<endl;
return 0;
}
输出
好饿52好饿
好饿52好饿
可以观察到,cout也需要引号引住输出内容,且变量在引号外。与printf不同的是,cout不需要使用类型字符,某种程度上说cout在输出上比printf方便。
2、cin
cin的输入套路:
cin>>变量名>>变量名>>···;
int a;
char c;
cin>>a>>c;
使用cin时,会自动识别变量类型,不需要额外标识类型类型。
三、C和C++输入输出对比
类别 | 实现 | 特点 |
---|---|---|
C输入 | scanf | 速度快 |
C++输入 | cin | 使用简单,自动识别类型 |
C输出 | printf | 格式容易控制 |
C++输出 | cout | 格式控制较麻烦 |
Tips:OJ刷题当数据规模较大时,推荐或者说必须使用scanf来避免TLE(Time LImit Exceeded超时)