#关于从输入流中读取数据的几个函数
- scanf(“”);
c语言中的scanf(“”)函数对格式要求相对严格,在双引号内部所写的格式要完全与输入流中的格式相对应,应该注意以下几点:
第一,双引号中的格式符,%d,%f,%s,%c。对于其中的%s来说比较特殊会在遇到空格,换行符,制表符等特殊结尾标识符时停止读取。
,在scanf中可以有读取宽度的限制比如scanf(“%5d”,…);
2.fgets();
gets();
fgets函数是gets函数的加强版,charfgets(charstr,int allsize,stdin)/chargets(charstr),fgets
函数是从标准输入流中读取sizeof(str)个字节大小的字符到字符串数组str[]中,但gets函数只是读取,并没有对读取多少加以限制,所以推荐使用fgets
3.getchar();
eg.char ch=getchar();
这一行中发生了隐式转换。
getchar的返回值是int类型,这样可以处理所有可能的字符和EOF(表示输入结束)。
当你将返回值赋给char类型的变量ch时,编译器会自动将int转换为char。
4.sscanf(“”);
sscanf是C语言中用于从字符串中读取格式化输入的函数,类似于scanf,但它是从一个字符串而不是标准输入流读取数据。
include [HTML_REMOVED]
int main() {
char str[] = “123 45.67 Hello”;
int a;
float b;
char word[20];
int items = sscanf(str, "%d %f %s", &a, &b, word);
if (items == 3) {
printf("读取成功:%d, %.2f, %s\n", a, b, word);
} else {
printf("读取失败。\n");
}
return 0;
}
sscanf从字符串中解析整数、浮点数和字符串,并将结果存储在相应的变量中。