以下代码不是由我自己制作的。我正在寻找,并在其他人的问题中发现它。这条线是做什么的?
#include <stdio.h>
#define NAME_MAX 80
#define NAME_MAX_S "80"
int main(void)
{
static char name[NAME_MAX + 1]; // + 1 because of null
if(scanf("%" NAME_MAX_S "[^\n]", name) != 1) // This line
{
fputs("io error or premature end of line\n", stderr);
return 1;
}
printf("Hello %s. Nice to meet you.\n", name);
}
你能告诉我标记行是干什么的吗?
从'stdin'中读取最多80个字符,它不是新行并且存储到数组'name'中。 – nhahtdh
最多可扫描80个字符,并在^之后的某个字符处停止,在本例中为换行符。更多信息可以在这里找到“否定scanset”:http://www.cplusplus.com/reference/cstdio/scanf/ – Orwell
这是一个正则表达式清楚 – Evert