使用头文件<stdio.h>
里的函数scanf("%s", str)
从标准输入流stdin
中提取字符,存放到char * str
所指示的内存位置。读取成功,函数返回成功读取的项目个数(参数表中成功填充的项目个数),否则返回EOF
(通常为-1)。
specifier | description | characters extracted |
---|---|---|
s | string of characters | Any number of non-whitespace characters, stopping at the first whitespace character found. A terminating null character is automatically added at the end of the stored sequence. |
函数scanf()
忽略开头的空白字符,直到遇到第一个非空白字符,再遇到第一个空白字符时停止读取,并在末尾添加无效字符'\0'
。如果读不到任何非空白字符或者遇到文件末尾(end of file),则返回EOF
(通常为-1),并且不改变char * str
所指示的原字符串。
代码示例
#include <stdio.h>
int main(int argc, char const *argv[]) {
freopen("1.txt", "r", stdin);
char str[10] = {};
int ret = 0;
ret = scanf("%s", str);
printf("%d: %s\n", ret, str);
ret = scanf("%s", str);
printf("%d: %s\n", ret, str);
ret = scanf("%s", str);
printf("%d: %s\n", ret, str);
return 0;
}
文本文件“1.txt”
hello
world
输出
1: hello
1: world
-1: world