当我没有用 C 编码时发生新行



>我只是想用空格和星星包围一个名字。

例如。

* John *

但我得到的输出是:

* John
*

为什么会这样?

谢谢

#include<stdio.h> 
char name[30];
int main(int argc, char **argv) 
{ 
printf ("Please enter your name: ");
fgets ( name , 30 , stdin );
printf ("* %s *", name);
return 0;
}

函数fgets可以将换行符'n'附加到输入的字符串。

您应该将其删除。您可以通过以下方式进行操作

#include <stdio.h>
#include <string.h>
//…
fgets ( name , 30 , stdin )
name[ strcspn( name, "n" ) ] = '';

fgets(( 也会获取你用 Enter 输入的换行符。您只需要删除它。只是做name[strlen(name) - 1] = ''.

当用户按 Enter 键时,您对fgets的调用也会以换行符读取。您可以尝试使用scanf

scanf("%s", name);

相关内容

  • 没有找到相关文章

最新更新