C编程语言(scanf)

Sha*_*ars 0 c whitespace scanf

我使用以下scanf()语句读取了包含空格的字符串.

scanf("%[^\n]", &stringVariableName);
Run Code Online (Sandbox Code Playgroud)

控制字符串是什么意思[^\n]

用这样的白色空间读取字符串是否可行?

Jon*_*bel 5

这意味着"读到任何内容,直到找到'\n'"

这没关系,但最好这样做"读取任何内容,直到找到'\n',或者读取比我的缓冲区支持更多的字符"

char stringVariableName[256] = {}
if (scanf("%255[^\n]", stringVariableName) == 1)
    ...
Run Code Online (Sandbox Code Playgroud)

编辑:从参数中删除&,并检查scanf的结果.

  • +1用于正确使用格式规范中变量的大小. (2认同)