各个语言的标准输入输出(C++,Python,Go,MATLAB)

标准输入和输出

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()输入和输出的速度比cincout更快

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()不同

posted @ 2024-11-11 12:49  zpa666  阅读(52)  评论(0)    收藏  举报