scanf("%c")
时间: 2023-10-29 22:06:38 浏览: 99
scanf("%c") 是C语言中的输入函数,用于从标准输入流中读取一个字符。但是需要注意的是,scanf("%c") 会读取缓冲区中的空格、换行符等字符。而 scanf(" %c") 会自动忽略缓冲区中的空格、换行符等字符,只读取有效字符。
在第一个引用中,scanf(" %c",&c) 的空格表示忽略前导空白字符,包括空格、制表符和换行符。这样做的目的是为了正确读取字符,避免读取到缓冲区中的空白字符。
在第二个引用中,scanf("%c",(p+i)) 是使用指针来读取字符,并将字符存储在字符数组中。循环中的第一个 scanf 函数用于逐个读取输入的字符,第二个循环将数组中索引为 6 到 9 的元素修改为 '#',最后一个循环用于打印修改后的字符数组。
在第三个引用中,scanf(" %c",&c) 的空格会将缓冲区中的回车当作第一个字符读取后丢弃。
相关问题
scanf(" %c")和scanf("%c)
scanf(" %c")和scanf("%c")是C语言中的输入函数,用于从标准输入中读取字符。
scanf(" %c")中的空格字符表示忽略输入中的空白字符(包括空格、制表符和换行符),然后读取下一个非空白字符。
scanf("%c")则直接读取下一个字符,无论其是否为空白字符。
因此,如果使用scanf(" %c"),则会忽略前面的空白字符,并读取下一个非空白字符。而如果使用scanf("%c"),则会直接读取下一个字符,包括空白字符。
scanf("%d",&(*p).age); scanf("%c",&std[0].sex); scanf("%c",&(p->sex)); scanf("%s",std.name);哪个输入语句有错误,为什么错误
以下是对每个输入语句的分析:
1. `scanf("%d",&(*p).age);` - 正确,因为`age`是一个`int`类型的成员。
2. `scanf("%c",&std.sex);` - 正确,因为`sex`是一个`char`类型的成员。
3. `scanf("%c",&(p->sex));` - 错误,应该使用`gender`而不是`sex`,因为结构体中的成员名是`gender`。
4. `scanf("%s",std.name);` - 错误,应该使用`&std.name`而不是`std.name`,因为`name`是一个字符数组,需要使用数组的地址。
因此,输入语句`scanf("%s",std.name);`有错误,应该改为`scanf("%s",&std.name);`。
阅读全文