问题描述
普通的cin和scanf()只能按分隔符(空格或换行)获取,比如输入:a b
cin和scanf()需要获取两次,第1次获取a,第2次获取b,无法一次获取一行
解决方案
如果需要获取一行,就需要使用:
1. fgets(),C语言函数
2. getline(),C++函数
详细说明
fgets()用法
fgets()是C语言函数
char a[31];
fgets(a,31,stdin);
fgets()使用注意事项
注意1、fgets()可能会在结尾增加了一换行符’\n’,程序需要特殊处理
if (a[strlen(a)-1]=='\n'){
a[strlen(a)-1]='\0';
}
注意2、使用fgets()定义的字符数组尽可能大一些,它会增加’\n’和’\0’两个字符,如果定义的字符数组小了,会出现意想不到的问题
getline()用法
getline()是C++函数
string a;
getline(cin,a);