1.scanf输入
字符数组使用%s读入的时候以空格跟换行为读入结束标志,如下代码所示:
1 | #include <stdio.h> |
scanf的%c格式是可以读入空格和换行的。
2.getchar()和putchar()输入/输出字符
getchar()用来输入单个字符,putchar()用来输出单个字符,在某些scanf函数使用不便的 场合可以使用getchar()来输入字符。
1 | #include <stdio.h> |
getchar可以识别换行符。
getchar做输入无法自动添加\0结尾,因此若用puts和printf输出字符串会因为无法识别字符串末尾而输出一大堆乱码。
3.gets输入,puts输出
gets用来输入一行字符串,并将其存放于一维数组中,puts用来输出一行字符串,并紧跟一个换行。
1 | # include <stdio.h> |
gets用\n作为结束标志。
4.getline函数
- 把一整行都读入char型数组str[100]中:
1
2char str[100];
cin.getline(str, 100); - 如果是string容器,则需要用下面的方式输入:
1
2string str;
getline(cin, str);不会因为空格导致不能输入整行
注意:若之前用cin,scanf读入数据后要加getchar()读入回车,不然getline会先读回车符号。
5.cin
1 | string str; |
cin会因为有空格无法读入整行