一.gets与puts函数:
gets(变量名)
1.方便好用,对于string类不可使用,C语言风格字符串可使用
2.可以输入空格,tab(很重要),不能输入回车
注意:NOJ提交程序中使用gets可能导致CE,需要替换
二.printf与scanf函数:
scanf("%s",&数组变量名)
1.对string类对象无法使用,只能由此输入字符数组
2.空格,tab,回车被视为输入项间隔,遇到这三个就结束
三.cin与cout函数:
cin>>数组变量名/string类变量名
1.对string类对象,字符数组都可以使用
2.空格,tab,回车被视为输入项间隔,遇到这三个就结束(即空格后输入的部分会被忽略)
注意:定义string类时,若要用cin>>str,则定义string str,不能写为string str[长度],这样实际上是定义了一个字符串数组,本质为一个二维数组,而这里的cin在没有循环的条件下,只能支持读入一个字符串,所以导致报错
在输出时,可以用cout<<str[i],来决定输出哪一位,但如果前面是定义的字符串数组,则此处需要表示为二维数组cout<<str[i][j]
四.getline函数:
1.注意getline有两种用法
getline(cin,string对象)
cin.getline(字符数组,输入的长度)
超过输入长度的部分一律不计入
2.getline需要包括头文件<string>与<istream>
3.getline可读取空格,不能读取回车
五.cin.get()函数:
1.通过循环遍历数组来完成输入输出
2.可以读入空格,回车(\n)
所以一般情况下需要用while(s[cnt]!='\n')cnt++来防止一直读入回车