读取C的用户输入字符串的最佳方法?

问题描述 投票:0回答:1

我知道fgets()和gets(),但有人告诉我这两个函数已被弃用,所以我宁愿使用其他函数。我使用了scanf,但是遇到的问题是,扫描到空格后停止扫描,因此如果我输入名字和姓氏,则它将仅返回第一个字符串。这是我使用scanf进行用户输入的原始代码,但我意识到,如果用户有三个字符串(如John Doe Smith),那么它将只能读取John Doe。

char firstName[100], lastName[100];
printf("Please enter your first and last name: \n");
scanf("%s%s", firstName, lastName);

这将返回正确的想法,但前提是用户输入两个字符串,例如John Doe。

自从本学期开始以来,我想使代码保持简单,而不涉及其他似乎过多使用的功能。

c arrays string scanf user-input
1个回答
0
投票

fgets()是从标准输入读取的首选C标准方式。只要您传入的缓冲区是属于您的有效内存,并且传入的长度等于或小于缓冲区的大小,就可以保证安全。

可以使用更复杂的用户输入库,例如Gnu Readline,但如果您只是在学习语言,则请遵循fgets()之类的标准。

© www.soinside.com 2019 - 2024. All rights reserved.