对于char类型带空格字符串:
- gets() gets() 不能被告知输入缓冲区的大小, 因此不能避免缓冲区的溢出。对应输出puts();
- fgets() fgets(str,100,stdin); 输出fputs(str,stdout); [第二个参数是要读取的字符串长度]
- scanf("%[^\n]",str) 遇回车结束。
- cin.get(str,100)
对于string类型带空格字符串:
- getline(cin,str) 默认遇回车结束,getline(cin,text,'#'),遇‘#’结束。
注意读入字符串时 如果前面输入了数字,要用getchar() 将输入数字后的回车抛弃。
最好用fgets(s,100,stdin) 或者gets(s)读取数字后面的字符串的形式把他们抛弃,防止runtime error。
如果不是读入带空格的字符串,而是用cin直接读入字符串时,则不用加getchar();