我试图从用户那里获取一些数据,并将其发送到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字符保持不变。

当然,还有其他的。

09-10 00:19
查看更多