标准输入和输出
C/C++
cin
,cout
,getline()
进行输入输出
#include<bits/stdc++.h>
using namespace std;
int main(){
//输入 `123 12 31`
int a,b,c;
cin>>a>>b>>c;
cout<<a<<b<<c<<endl; //输出1231231 并换行(endl代表换行)
//输入 `zpa zz`
string s;
cin>>s;
cout<<s;//只会输出`zpa` 后面因为存在空格作为分隔符所以 `zz` 会被放入cin的缓冲区内等待下一个接收
//输入 `zpa 666 zhang!`
string x;
getline(cin,x);
cout<<x;//输出 `zpa 666 zhang!` getline()函数会读入一整行数据
return 0;
}
cin
读入的数据不是一行,会以空白字符为分隔符,剩下的字符会被存在缓冲区内
如果想要读取用户输入的一整行数据可以用getline()
函数
可用ctrl + z
强制结束cin
的输入
#include<bits/stdc++.h>
using namespace std;
int main(){
int a;
while(cin>>a)cout<<"sss";//这时的cin会不断的读取数据可用ctrl + z 强制结束cin的输入
cout<<"aaa";//ctrl+z 后会打印输出 `aaa`
return 0;
}
scanf()
和printf()
进行输入和输出
#include<bits/stdc++.h>
using namespace std;
int main(){
int a,b;
pritf("tips");
scanf("%d",&a,&b);
printf("%d",a,b); //格式化输出%d为占位符
return 0;
}
scanf()
和prinf()
输入和输出的速度比cin
,cout
更快
go
fmt.Scan()
,fmt.Print()
进行输入和输出
package main
import (
"fmt"
)
func main() {
var a string
var b string
var c string
//输入 `zpa 666 zzz`
fmt.Print("tips")
fmt.Scan(&a, &b, &c) // Scan()会以空白字符为分隔符,类似c++中的cin
fmt.Print(a) // 输出不换行 `zpa`
fmt.Println(a, b, c) // 输出`zpa 666 zzz` Println()会自动在变量之间添加空格
fmt.Printf("格式化输出 %s%s%s", a,b,c)// 输出`zpa666zzz` 不会自动添加空格
}
因为Scanf()
包在fmt
里面且不是main的子包,所以使用时Scanf()
首字母要大写,其他函数同理也要大写
Python
input()
,print()
进行输入和输出
a=input()#输入`zpa 666`
b=input()#输入`777`
print(a,b) #输出 `zpa 666 777` print()会自动在变量之间添加空格,与go的类似
print(f"sss{a}{b}")#输出 `ssszpa 666 777` print()会自动在变量之间添加空格
print("%s%d" % (a,int(b))#格式化输出 `zpa 666777`
print("Name: {1}, Nms: {0}".format(a, b))#格式化输出Name: zpa, Nms: 666
input()
读入的数据全部默认为string类型,一般要转类型再使用,也可用eval(input())
可将字符串“231313”
转为int231313
input()
是读取的一整行数据,与C++中的getline(cin,s)
类似
!!!默认情况下,print()
函数会在输出后添加一个换行符,可通过end
来进行更换
a=input()#输入 `zpa`
b=input()#输入 `666`
print(a,end=" ")#end=" " 指定在输出的字符串末尾应该添加空白字符
print(b,end=" ")
#最后输出 `zpa 666`
end=" " 指定在输出的字符串末尾应该添加空白字符
如果想要像cin
那样对一行的数据进行分别读取可以使用map()
+split()
来实现
a,b=map(int,input().split())#输入`123 666` input().split()将字符串按空格分割,将每个子串给int函数进行强制转换为int类型
print(a,b)#`a=123` `b=666` 输出`123 666` print()会自动加空格分开
语法map(一个函数,一个可迭代对象) !!!map()
返回的是一个迭代器并不是返回多个数
map 函数会将可迭代对象中的每个元素作为参数传递给指定的函数
input().split()输入的按空格分割,split()默认的是按空白字符分割
Matlab
input(),disp()
进行输入和输出
num = input('请输入一个数字: '); %输入`123` num会是int类型
disp(x);% x可为数组即矩阵,等其他数据
fprintf(' %.2d\n', x);%格式化输出`123` `\n`进行换行
disp(['sss', num2str(num)]);%输出 `sss 123`
%字符串拼接 [ ]里面为数组 num2str()转字符串函数
num2str()
数字转字符串函数
Matlab
中的input()
会根据用户输入的数据类型进行自动转换 与 Python
中的input()
不同