输入输出(C++/Java/Python)

C++

输入

getchar()
读取一个字符,作为返回值返回

char c = getchar();

cin
向一个或多个变量输入值,可以是字符串,可以是数字,遇到空格或回车算一次输入

示例1:测试cin的读取规则

string s;
cin >> s;
cout<<s<<endl;

示例1结果:
cin遇到空格断开,所以s读入的字符串为”abc”

在这里插入图片描述

示例2:输入多个没有空格的字符串

string s1, s2;
cin >> s1 >> s2;
cout<<s1<<endl;
cout<<s2<<endl;

示例2结果:
“abc”和”def”分别被赋给s1和s2

在这里插入图片描述

示例3:输入多个数字

int a1, a2;
cin >> a1 >> a2;
cout<<a1 + a2<<endl;

示例3结果:
也可以用来输入数字,编译器会自动识别

在这里插入图片描述

getline(cin, str)
从输入流中读取一行,遇到回车才算一次输入

示例:

string s;
getline(cin, s);
cout<<s<<endl;

结果:
可以将空格也读入到字符串中

在这里插入图片描述

输出

cout
本部分引用(参考)自:https://blog.csdn.net/qq_35481167/article/details/82792103

示例1:输出两个数字,用空格隔开

int a = 123, b = 456;
cout << a << ' ' << b << endl;  // 输出a的值,然后输出一个空格,再输出b的值,最后换行

示例1结果:
在这里插入图片描述

示例2:按照不同进制输出数字
需要#include

int a = 90;
cout << a << endl;          // 直接输出,默认十进制
cout << dec << a << endl;   // 按十进制输出
cout << oct << a << endl;   // 按八进制输出
cout << hex << a << endl;   // 按十六进制输出

示例2结果:

在这里插入图片描述

示例3:控制输出位数

用setprecision()来控制有效数字位数,用cout << fixed << setprecision()来控制小数部分位数
需要#include

double i = 3333.1415926;
cout << i << endl;                              // 直接输出
cout << setprecision(3) << i << endl;           // 3位有效数字,若整数部分就大于3位,则采用科学计数法
cout << setprecision(9) << i << endl;           // 9位有效数字
cout << fixed << setprecision(3) << i << endl;  // 控制小数部分位数为3位,四舍五入
i = 3.14;
cout << fixed << setprecision(5) << i << endl;  // 小数部分为5位,不足则补0

示例3结果:

在这里插入图片描述

示例4:输出宽度和对齐方式
setw()设置宽度,setiosflags()设置对齐方式
需要#include

int a = 1, b = 123, c = 12345;
cout << "默认显示:" << endl;
cout << setw(8) << a << setw(8) << b << setw(8) << c << endl;

cout << "左对齐:" << endl;
cout << setiosflags(ios::left);
cout << setw(8) << a << setw(8) << b << setw(8) << c << endl;

cout << "右对齐:" << endl;
cout << setiosflags(ios::right);
cout << setw(8) << a << setw(8) << b << setw(8) << c << endl;

示例4结果:
在这里插入图片描述

Java

本部分参考了:
https://www.runoob.com/java/java-scanner-class.html
https://blog.csdn.net/lil_ghost_/article/details/126402588

输入

Scanner类
需要import java.util.Scanner;

示例1:用Scanner.next()接收键盘输入的字符串
和C++的cin一样,遇到空格就会断开

Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = scanner.next();          // 读取字符串,空格结束
System.out.println("输入的字符串是:"+s);

示例1结果:

在这里插入图片描述

示例2:用Scanner.nextLine()接收键盘输入的一行字符
字符串里可以有空格,遇到回车才断开

Scanner scanner = new Scanner(System.in);
System.out.println("请输入字符串:");
String s = scanner.nextLine();          // 读取字符串,回车结束
System.out.println("输入的字符串是:"+s);

示例2结果:

在这里插入图片描述

示例3:用Scanner.nextInt()接收键盘输入的整数

Scanner scanner = new Scanner(System.in);
System.out.println("请输入整数:");
int a = scanner.nextInt();
System.out.println(a+"的平方是:"+a*a);

示例3结果:
在这里插入图片描述
如果类型不匹配则会报错
在这里插入图片描述

此外,还有Scanner.nextLong()、Scanner.nextFloat()等,详细API和用法见:
https://www.runoob.com/manual/jdk11api/java.base/java/util/Scanner.html

可能的问题
下面这段程序实现用整数来输入学号,用String类来输入姓名

Scanner scanner = new Scanner(System.in);
int stuID;
String name;
System.out.println("请输入学号:");
stuID = scanner.nextInt();          // 用一个整数来接收学号
System.out.println("请输入姓名:");
name = scanner.nextLine();          // 用一个String类来接收姓名
System.out.println("学号为"+stuID+"的学生姓名为:"+name);

但是输入学号之后,程序就结束了,如下图。这是因为回车符被scanner.nextLine()视为输入结束了,于是name读入了一个空字符串。

在这里插入图片描述

解决办法
用一个多余的scanner.nextLine()来消耗掉这个回车。

Scanner scanner = new Scanner(System.in);
int stuID;
String name;
System.out.println("请输入学号:");
stuID = scanner.nextInt();          // 用一个整数来接收学号
scanner.nextLine();                 // 吸收上一次的回车
System.out.println("请输入姓名:");
name = scanner.nextLine();          // 用一个String类来接收姓名
System.out.println("学号为"+stuID+"的学生姓名为:"+name);

在这里插入图片描述

输出

System.out.printf()
格式化输出,用法和C语言一样

String s = "abcdef";
System.out.printf("字符串%s的长度为:%d",s,s.length());
// 输出:字符串abcdef的长度为6

System.out.print()和System.out.println()
区别在于:
前者输出之后不换行,必须有参数(即输出的内容)
后者输出之后换行,可以没有参数(只输出一个换行)

int a = 123;
String s = "abc";

System.out.print(a);
System.out.print(s);
/*
输出:
123abc
*/

System.out.println(a);
System.out.println(s);
/*
输出:
123
abc
*/

Python

输入

input()

Python只用input()函数从键盘接收输入,可以带参数,参数为输入的提示语
输入是按行输入的,遇到回车算一次输入
如果需要输入数字,需要在程序中自行处理

示例1:从键盘输入一个字符串

s = input()
print(s)

示例1结果:按行读入,遇到空格不会断开

在这里插入图片描述

示例2:从键盘读入一个数字

# input函数中可以带有提示语
# input函数读入是字符串,用int()进行类型转换
s = int(input("请输入一个整数:")) 
print(s,"的平方是",s**2)

示例2结果:
在这里插入图片描述

示例3:从键盘读入多个不含空格的字符串

# 用split分割,不带参数默认按空格分割
s1, s2, s3 = input().split()
print(s1)
print(s2)
print(s3)

示例3结果:

在这里插入图片描述

示例4:从键盘读入多个数字

# 用map()对分割形成的字符数组进行处理
a1, a2, a3 = map(int, input().split()) 
print(a1+a2+a3)

示例4结果:
在这里插入图片描述

示例5:从键盘读入多个数字到数组

# 用list()进行类型转换
arr = list(map(int, input().split()))
print(arr)

示例5结果:

在这里插入图片描述

输出

print(*objects, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)

参数:(带*号的为不常用的参数)
objects – 复数,表示可以一次输出多个对象。输出多个对象时,需要用 , 分隔。
sep – 用来间隔多个对象,默认值是一个空格。
end – 用来设定以什么结尾。默认值是换行符 \n,我们可以换成其他字符串。
*file – 要写入的文件对象。
*flush – 输出是否被缓存通常决定于 file,但如果 flush 关键字参数为 True,流会被强制

示例1:输出多个对象

a = 123
s = "abc"
print(s,a)
# 输出:abc 123

示例2:用%控制格式化字符串

a = 123
s = "abc"
print("str is:%s, int is:%d"%(s,a))
# 输出:str is:abc, int is:123

示例3:用f转化格式

s = "abc"
l = len(s)
print(f"length of string '{s}' is {l}")
# 输出:length of string 'abc' is 3

示例4:string.format()格式

print('输出:{:f}'.format(12))
# 输出:12.000000

print('输出:{:.2f}'.format(12))
# 输出:12.00

print('输出:{:+}'.format(12))
# 输出:+12

print('输出:{:%}'.format(0.5))
# 输出:50.000000%

print('输出:{:.2%}'.format(0.5))
# 输出:50.00%

print('输出:{:e}'.format(0.5))
# 输出:5.000000e-01

print('输出:{:b}'.format(5))
# 输出:101
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值