scanf("%s", &buffer);在输入中读取下一个标记(任何空格/行尾/制表符将结束标记)并将其存储在中char *buffer。您应该使用最大大小的格式来缓冲,例如,char buffer[10]您scanf("%9s", buffer);最多可以使用9个字符读取。
gets()已过时,请勿使用。它会读取一个完整的行,而不管它的大小如何,因此,如果具有管理员特权的程序使用了如此卑鄙的功能,则黑客可以利用它入侵系统。这曾经是普通黑客的策略。请fgets()改用,它使用一个与缓冲区大小相同的参数。fgets(buffer, 10, stdin);与我之前的示例。请注意,\n如果该行不超过8个字符,它将包含在缓冲区中。
getline()更具体,因为我所知道的c++只是一个功能。
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |