char 和string的输入
1. scanf
1.1 输入字符
char ch;
scanf("%c",&ch);
注意字符前面的取地址符
1.2 输入字符串
char str[15];
scanf("%s",str);
char *pstr;
scanf("%s",pstr);
(1)scanf在输入字符串时,不读入空格和回车,在读入空格或回车时,输入结束
(2)输入字符串长度超过字符数组元素个数不报错,但运行时会提示“Run-Time Check Failure #2 - Stack around the variable 'str' was corrupted.”
(3)当为str为数组元素地址时,从此元素地址开始存放
(4)当输入项为字符指针时,指针必须已指向确定的有足够空间的连续存储单元,不然会提示指针未初始化
2.getchar
输入一个字符
char ch;
ch = getchar();
3.gets
输入一个字符串,包括空格,遇到回车结束输入
char str[15];
gets(str);
4.cin
输入数字:以空格或回车结束
输入字符或字符串:以空格、TAB、回车结束!
5.cin.get
cin.get(字符变量名):用来接收字符
cin.get(字符数组名,接受字符数目),用来接收一个字符串,可以接受空格的
cin.get(无参数):没有参数主要是用于舍弃输入流中的不需要的字符或者舍弃回车弥补cin.get(字符数组名,接受字符数目),的空格的不足
getline将丢弃换行符,而get()将换行符保留在输入序列里,但是字符串中并没有换行符。使用cin.get()输入多行数据时,中间可以使用get()消除换行符。
int main()
{
char str1[30], str2[30];
cin.get(str1, 30);
cin.get();
cin.get(str2, 30);
cout << "str1: " << str1 << endl;
cout << "str2: " << str2 << endl;
return 0;
}
6.cin.getline
cin.getline(字符数组名,接受字符数目):接受一个字符串
cin.getlne():其实可以有三个参数,最后一个参数是字符串的结束标志,当最后的参数省略时,默认是'\0'
char str[15];
int len = 5;
cin.getline(str,len,'*');
7.Printf
printf("%s",地址值)
输出时遇到第一个'\0'为止
8.puts
puts遇到第一个‘\0’结束,自动加入换行符
char str[15];
gets(str);
puts(str);