for后面要加大括号与不加的区别
for循环语句如果循环体内只有一条执行语句则不用加大括号,如果执行语句为多条语句则必须用大括号括起来,以表示这一部分的执行语句都在循环体内,循环条件满足时要被执行的语句。
①(不加)
for(i=0;i<5;i++)
s+=m[i];
这个循环体内就一条执行语句 s+=m[i];故不用大括号;
(当循环体只包含一条语句时,可以省略花括号。这种情况下,循环体只会执行该条语句。如果循环体中有多条语句,则只有紧随 for 循环的那条语句会被视为循环体的一部分。)
②空循环
for(i=0;str[i]!='\0';i++);
此句后就有分号,表示为空循环,没有执行语句,它的功能就是为了得到i的值。
③加了
循环体中有多条语句,则只有紧随 for 循环的那条语句会被视为循环体的一部分;即(只有紧随 for 循环的那条语句会被循环,其余语句则会到最后执行)
如果要清空输入缓冲区
①使用一个循环来读取并丢弃输入缓冲区中的字符,直到遇到换行符为止。例如:
int c;
while ((c = getchar()) != '\n' && c != EOF) {}
②使用scanf函数来读取输入并忽略它。例如:
scanf("%*[^\n]");
scanf("%*c");
这两种方法都可以清空输入缓冲区,使之后的输入操作不受之前输入的影响
fflush(stdin)函数用于刷新输出流
将缓冲区中的内容写入到文件中。它的原型如下:
int fflush(FILE *stream);
fflush()函数接受一个指向文件流的指针作为参数,它可以刷新指定文件流的输出缓冲区。如果参数stream为NULL,则fflush()会刷新所有输出缓冲区。
在C语言中,输出通常是缓冲的,意味着当你使用printf()等输出函数时,数据会先被写入到输出缓冲区中,然后根据一定条件将缓冲区中的数据写入到实际的输出设备(如终端或文件)中。这样做可以提高输出效率。
有时你可能希望立即将缓冲区中的数据写入到输出设备,而不是等待缓冲区满或程序结束。这时就可以使用fflush()函数。
Fput
stdout是C语言中的标准输出流。它是一个预定义的文件指针,用于将数据输出到屏幕上。
在C语言中,可以使用printf函数将数据输出到stdout流中。printf函数的第一个参数是格式化字符串,用于指定输出的格式,后面的参数是要输出的数据。