我试图从用户那里获取一些数据,并将其发送到gcc中的另一个函数。代码是这样的。
printf("Enter your Name: ");
if (!(fgets(Name, sizeof Name, stdin) != NULL)) {
fprintf(stderr, "Error reading Name.\n");
exit(1);
}
但是,我发现它最后有一个换行符
\n
。因此,如果输入John
,它将最终发送John\n
。如何删除该\n
并发送适当的字符串。 最佳答案
稍微难看的方式:
char *pos;
if ((pos=strchr(Name, '\n')) != NULL)
*pos = '\0';
else
/* input too long for buffer, flag error */
稍微奇怪的方式:
strtok(Name, "\n");
请注意,如果用户输入空字符串(即仅按Enter),
strtok
函数将无法正常工作。它使\n
字符保持不变。当然,还有其他的。