前阵子响应学校号召参加了某比赛,为此学习练习了算法,在力扣里苦苦挣扎。当我信心满满的参加去参加比赛时,直接被干趴了,倒在了第一关——我不懂怎么进行参数的输入!!!(被力扣惯坏了),所以写下这篇博客复习一下如何进行输入。
#include
几乎可以获取各种类型的数据.
scanf(“格式控制符……”,变量地址);
| 常用(自认为的)格式控制符 | |
| %d | 整数(int) |
| %ld | 长整型(long int) |
| %lld | 长长整型(long long int) |
| %f | 浮点数(小数)(float) |
| %lf | 双精度浮点数(double) |
| %s | 字符串 |
| %c | 字符 |
- //例:
- int x=0;
- scanf("%d",&x);
1、数组不用取地址(&),因为数组的变量名本身就是该数组的首地址。
2、使用%s输入字符串时只有按下回车才会结束,但是一旦按了空格之后,空格后面的内容不再输入。可以使用正则表达式来获取包含空格的字符串,当初在C语言课上用了下,老师都没见过,让我小小装了一下。
- char x[100]={0};
- scanf("%[^\n]",x);
获取一个字符
变量=getchar()
- //例:
- char x;
- x=getchar();
1、getchar不会等待用户输入,而是直接从控制台缓冲区获取一个字符,所以比如说我先用scanf获取了字符串,按下回车结束输入,scanf后面接了个getchar,那么那个回车会被getchar获取,所以getchar也常用于吸收回车(\n)
2、可以利用getchar来获取包含空格的字符串
- //例:
- #include
- #pragma warning(disable:4996)
- int main()
- {
- char x[100] = { 0 };
- char temp = getchar();
- int index = 0;
- while (temp != '\n') {
- x[index++] = temp;
- temp = getchar();
- }
- printf("%s",x);
- return 0;
- }
获取包含空格的字符串.
gets(字符数组变量名)
- //例:
- char x[100]={0};
- gets(x);
python貌似就这一种输入的方法(貌似……),还挺万能的。
变量名=input(“请输入”)
1、input输入获取的数据是字符串类型的,所以有其他需要的话可以进行强制转换类型。
2、如果要获取多个数,并且用空格分隔,输入在同一行的话,可以用字符串分割来一一获取数据。
- #例:
- string=input(“这是一串用空格分隔的数”)
- arr=string.split(' ')
import java.util.Scanner;
在Java中获取输入数据需要创建一个对象Scanner
Scanner sc=new Scanner(System.in)
int 变量=sc.nextInt( ) 获取一个整数,可以是long类型.
float 变量=sc.nextFloat( ) 获取一个小数,必须是float类型.
double 变量=sc.nextDouble( ) 获取一个小数,必须是double类型.
字符串对象=sc.next( ) 获取字符串,遇空格停止获取.(必须先创建好字符串对象)
字符串对象=sc.nextLine( ) 获取字符串,包含空格,按回车结束.(必须先创建好字符串对象)