我试图从用户那里获取一些数据并将其发送到gcc中的另一个函数.代码是这样的.
printf("Enter your Name: ");
if (!(fgets(Name, sizeof Name, stdin) != NULL)) {
fprintf(stderr, "Error reading Name.\n");
exit(1);
}
Run Code Online (Sandbox Code Playgroud)
但是,我发现它最后有一个换行符\n.所以,如果我输入John它最终发送John\n.如何删除它\n并发送正确的字符串.
通常用于{0}初始化a struct或a,array但考虑第一个字段不是标量类型时的情况.如果第一个字段struct Person是另一个struct或数组,则该行将导致错误(error: missing braces around initializer).
struct Person person = {0};
Run Code Online (Sandbox Code Playgroud)
至少GCC允许我使用空的初始化列表来完成同样的事情
struct Person person = {};
Run Code Online (Sandbox Code Playgroud)
但这是有效的C代码吗?
另外:这条线是否保证给出相同的行为,即零初始化struct?
struct Person person;
Run Code Online (Sandbox Code Playgroud)