scanf("%s", str);
特点:不需换行区分;char型数组
cin >> str
特点:不需换行区分;char型数组和string类
fets(str, sizeof(str), stdin);
特点:需要换行区分;char型数组
gets()函数的不安全性
由于在实际开发中,用户输入的字符串长度是随机的,在对输入长度没有要求的情况下,gets()函数会导致越界,程序崩溃。
fgets()换行符处理
对于cin,fets()函数会将换行符’\n’存入数组 ,可以对其进行过滤:
int i = 0;
while(str[i] != '\n')
i++;
str[i] = '\0';
或:
str[strlen(s) - 1] = '\0';
getline(cin, str)
特点:需要换行区分,string类