【发布时间】:2021-08-15 14:59:21
【问题描述】:
我正在处理一个小代码,我需要通过 scanf 函数将整行作为输入,我认为有一个格式说明符 "[^\n%*c]" 有人可以告诉我它的语法吗?它是如何工作的?
【问题讨论】:
标签: c
我正在处理一个小代码,我需要通过 scanf 函数将整行作为输入,我认为有一个格式说明符 "[^\n%*c]" 有人可以告诉我它的语法吗?它是如何工作的?
【问题讨论】:
标签: c
最好的方法可能是使用fgets。
char str[20];
fgets(str, 20, stdin);
printf("%s", str);
这里没有理由使用scanf。请记住,fgets 也将换行符放入缓冲区。可以这样删除:
str[strcspn(str, "\n")] = 0;
【讨论】:
#include <stdio.h>
int main()
{
char str[20];
scanf("%19[^\n]%*c", str);
printf("%s\n", str);
return 0;
}
【讨论】: