如何读取用户在C中输入的字符串?

如何读取用户在C中输入的字符串?

我想使用C程序读取我的用户输入的名称。

为此,我写道:

char name[20];printf("Enter name: ");gets(name);

但使用gets不是很好,那么有什么更好的方法呢?


白衣染霜花
浏览 525回答 3
3回答

临摹微笑

我认为读取用户输入的字符串的最好和最安全的方法是使用getline()下面是一个如何做到这一点的例子:#include&nbsp;<stdio.h>#include&nbsp;<stdlib.h>int&nbsp;main(int&nbsp;argc,&nbsp;char&nbsp;*argv[]){ &nbsp;&nbsp;&nbsp;&nbsp;char&nbsp;*buffer&nbsp;=&nbsp;NULL; &nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;read; &nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;len; &nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;=&nbsp;getline(&buffer,&nbsp;&len,&nbsp;stdin); &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(-1&nbsp;!=&nbsp;read) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;puts(buffer); &nbsp;&nbsp;&nbsp;&nbsp;else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf("No&nbsp;line&nbsp;read...\n"); &nbsp;&nbsp;&nbsp;&nbsp;printf("Size&nbsp;read:&nbsp;%d\n&nbsp;Len:&nbsp;%d\n",&nbsp;read,&nbsp;len); &nbsp;&nbsp;&nbsp;&nbsp;free(buffer); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}

桃花长相依

在POSIX系统上,您可能应该使用getline如果可以的话。您也可以使用Chuck Falconer的公共域ggets函数,该函数提供语法更接近gets但没有问题。(查克·法尔科纳的网站已不复存在,尽管.‘>有一份副本,我做了我自己的gget页面.)
打开App,查看更多内容
随时随地看视频慕课网APP