以之前做的一道题为例
适合使用 while 循环的场景
未知次数的迭代:
当你需要根据某个条件来决定是否继续循环,而这个条件可能在循环开始前是未知的,这时适合使用 while 循环。
编写一个程序:读取用户输入直到用户输入特定值(如“exit”)。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>//strcmp函数头文件
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
char a[100];//假设输入不超过99个字符
printf("请输入内容:");
scanf("%s",a);//正确读入数组
while(1)//无限循环,直到遇到break语句
{
fgets(a, sizeof(a), stdin);//读取内容后,处理完进行下一轮的读取
if(strcmp(a,"exit")==0)//对比两个字符串,判断是否是exit
{
break;
}
else
{
printf("你输入的内容是:%s\n",a);
}
}
return 0;
}
以上是小编自己写的程序,作为一个初学者进行了多次修改,让我意识到fgets函数的一些优点。
fgets函数能安全地读取包含空格的字符串,防止缓冲区溢出
fgets 按行读取数据,遇到换行符 '\n' 或文件结束符 EOF 时停止读取,将读取的内容包括 '\n' 存入指定数组。这便于处理文本文件中以行为单位的数据。