编程语言输入输出

admin 2022年1月6日01:37:44安全博客评论13 views4402字阅读14分40秒阅读模式

常见语言的输入输出

java

输入

next():

  • 1、一定要读取到有效字符后才可以结束输入。
  • 2、对输入有效字符之前遇到的空白,next() 方法会自动将其去掉。
  • 3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next() 不能得到带有空格的字符串。

nextLine():

  • 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
  • 2、可以获得空白。
    has**():判断下面是否有输入符合要求的内容

注意点

如果在nextLine(),之前有其他的输入的话(不包含nextLine(),也就是说2个nextLine()不会出现这个问题),nextLine()会无法输入,原因是:nextLine()会读取之前输入的 回车 ‘\n’ ,也就是说是读取了,但是读取了上一个输入的回车,所以解决方法就是:加多一个nextLine()来读取上一次的回车即可;

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=0;
String str="";
List<String> strs=new ArrayList<>();
System.out.print("请输入你要输入的字符串个数:");
if(sc.hasNextInt()){
n=sc.nextInt();
}
sc.nextLine();//
for(int i=0;i<n;i++){
if(sc.hasNextLine()){
str=sc.nextLine();
strs.add(str);
}
}
for(String e : strs){
System.out.println(e);
}
}
}

获取一行的多个字符串

1
2
3
4
5
6
7
8
9
10
11
class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String[] strs=str.split("\\s+");
for (String e:strs) {
System.out.format("%s",e);
}

}
}

输出

1
2
3
4
System.out.println(1111);//换行打印
System.out.print(1111);//不换行打印
System.out.write(2222);//字节输出
System.out.printf("%+8.3f\n", 3.14);//按格式输出

python2

输入

1.输入为一个int类型的数据

1
n = input()

2.输入为字符串

1
2
arr = raw_input(),此时得到的为字符串本身,如输入adae,得到的是字符串'adae'。
arr = sys.stdin.readline(),若采用这种方式,此时得到的为'adae\n’,末尾多了一个换行符,需要把这个换行符截断,一般直接采用arr = sys.stdin.readline().strip('\n'),即可得到正常的输入字符串

3.输入为一行int类型数据,如 2 4 5 6 7

1
2
arr = map(int, raw_input().split())
arr = map(int, sys.stdin.readline().strip('\n').split())

首先用split将输入的字符串按空格分开,split默认分隔方式为空格,可针对输入数据格式调整,如输入为2,4,5,6,7,用逗号隔开,那么这里可以使用split(‘,’)。map函数则是根据提供的函数(这里的函数是int函数),对制定序列做映射(这里的序列是将输入字符串按空格分割的结果),上面的使用方式,左右是把分割后的列表逐元素映射为int类型,即可得到包含一行输入元素的列表。

4.多行输入

可采用lines = sys.stdin.readlines(),一次性读取多行输入。再使用for line in lines处理每一行输入,但要注意,这里的line会包含末尾的’\n’换行符,要进行处理,line = line.strip(‘\n‘),再进行后续处理。这种适合牛客网的在线编程,但在本地IDE调试程序时,不要使用这样的方式,程序会一直读取输入。

输出

1
print 1,2

python3

输入

1
input()

内置函数input([prompt]),用于从标准输入读取一个行,并返回一个字符串(去掉结尾的换行符

输出

最简单的输出方法是用print语句,你可以给它传递零个或多个用逗号隔开的表达式:

1
2

print([object, ...][, sep=' '][, end='endline_character_here'][, file=redirect_to_here])

方括号内是可选的,sep表示分割符,end表示结束符,file表示重定向文件。如果要给sep、end、file指定值必须使用关键字参数。

1
2
print('hello', 'world', sep='%')    # 输出hello%world
print('hello', 'world', end='*') # 输出hello world*,并且不换行

c

格式化输入输出

printf和scanf
其中printf为按格式输入函数,它格式定义以%开头,后面字母代表的意义如下:

1
2
3
4
5
6
7
8
9
10
11
12
d 以十进制形式输出带符号整数(正数不输出符号)
o 以八进制形式输出无符号整数(不输出前缀 0)
x,X 以十六进制形式输出无符号整数(不输出前缀 Ox)
u 以十进制形式输出无符号整数
f 以小数形式输出单、双精度实数
e,E 以指数形式输出单、双精度实数
g,G 以%f 或%e 中较短的输出宽度输出单、双精度实数
c 输出单个字符
s 输出字符串
- 结果左对齐,右边填空格
+ 输出符号(正号或负号)
# 输出值为正时冠以空格,为负时冠以负号

关于scanf则是与printf相对,它是功能是按格式输入,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
main()
{
char ch;
int a,b;
float c,d;
char str[20];
scanf("%c,%d,%d,%f,%f,%s", &ch, &a, &b, &c, &d, str);
printf("%c,%d,%d,%f,%f,%s\n", ch, a, b, c, d, str);
}

a,1,2,3.3,4.4,Hello
a,1,2,3.300000,4.400000,Hello

scanf()

关于scanf也有一个地方需要读者注意,在调用scanf函数时我们向其传入的参数变量前要加入一个&符号,用于表示这个变量的内存地址,而数组型变量除外。

调用格式为:scanf(“<格式化字符串>”,<地址表>);
scanf的返回值

1
2
3
4
5
6
7
8
9
10
11
scanf()函数返回成功赋值的数据项数
读到文件末尾出错时则返回EOF。
如:
scanf("%d%d", &a, &b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF
且返回值为int
空白符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
非空白符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符

非格式化输入输出

puts()和gets()函数

puts()函数

  • 头文件为stdio.h
  • puts()函数用来向标准输出设备(屏幕)写字符串并换行
  • 调用格式为puts(s),其中s为字符串变量(字符串数组名或字符串指针)。puts()函数的作用于printf(“%s\n”,s)相同
    例如:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
    char s[20],* f;
    strcpy(s,"Hello!");
    f="Thank you ";
    puts(s);
    puts(f);
    return 0;
    }

    说明
    (1) puts()函数只能输出字符串,不能输出数值或者进行格式变换
    (2) 可以将字符串直接写入puts()函数中。如puts(“Hello,Tuuu”)

gets()函数

  • 头文件为stdio.h
  • char * gets(char * str);
  • gets()函数用来向标准输入设备(键盘)读取字符串直到回车结束,不同于fgets,它没有指定num,所以需要注意字符数组str的大小
  • 调用格式为gets(s),其中s为字符串变量(字符串数组名或者字符串指针)。gets()函数的作用于scanf(“%s”,&s)函数作用类似,使用``scanf(“%s”,&s) 函数输入字符串时存在一个问题, 就是如果输入了空格会认为输入字符串结束,空格后的字符将作为下一个输入项处理, 但gets() 函数将接收输入的整个字符串直到回车为止。

putchar()、getch()、getche()和getchar()函数,附fgets函数

putchar()函数等同于printf(“%c”,ch)

getch()函数、getche()函数

  • 头文件 conio.h
  • 并非标准C中的函数,建议还是使用getchar()
  • int getch(void)当你用键盘输入的时候,屏幕不显示你所输入的字符(不带回显),不需要按回车,程序自动继续进行
  • int getche(void)屏幕显示你所输入与的字符(带回显),不需要按回车,程序自动继续进

getchar()函数

  • 头文件 stdio.h
  • int getchar(void) 从标准输入stdin读入一个字符,程序等待你输入的时候你可以输入多个字符,回车后程序继续执行。但是getchar实际上制度如第一个字符。
  • 常用在exe中暂停程序。

fgets()函数

  • char * fgets(char * str, int num, FILE * stream);
  • 头文件stdio.h
  • 从流stream中读入最多num个字符到字符数组str中,当遇到换行符的时候,或者读到num-1个字符时候停止。自动加上’\0’空字符结尾

c++

cout语句一般格式:

cout<<表达式1<<表达式2<<……<<表达式n;

cin语句一般格式:

cin>>表达式1>>表达式2>>……>>表达式n;

php

FROM :blog.cfyqy.com | Author:cfyqy

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:37:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  编程语言输入输出 http://cn-sec.com/archives/721993.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: