10.C语言初阶——循环语句-while

1.1 while 循环

break--永久的终止循环

Continue--跳过本次循环后面的代码,直接判断要不要进行下一次循环。

int main()

{

int i = 1;

while (i <= 10)

{

if (i == 5)

{

break;                //不论break放在哪里,它都是用来跳出循环的。

}

printf("%d\n", i);

i++;

}

return 0;

}

int main()

{

int i = 1;

while (i <= 10)

{

if (i == 5)

{

continue;

}

printf("%d\n", i);

i++;

}

return 0;

}

 

1.2  getchar 和 gets 和 scanf 区别

1.getchar函数:

  • getchar函数用于从标准输入(键盘)读取一个字符。
  • 它的原型为:int getchar(void)。
  • 返回值为读取的字符的ASCII码值(整数类型)。
  • 注意:getchar函数每次只能读取一个字符,遇到换行符或文件结束符时停止读取。

2.gets函数:

  • gets函数用于从标准输入(键盘)读取一行字符串。
  • 它的原型为:char *gets(char *str)。
  • 返回值为读取的字符串的地址(指针类型)。
  • 注意:gets函数不会检查输入字符串的长度,容易导致缓冲区溢出,因此不推荐使用。

3.scanf函数:

  • scanf函数用于从标准输入(键盘)按照指定格式读取数据。
  • 它的原型为:int scanf(const char *format, …)。
  • 返回值为成功匹配并赋值的输入项个数(整数类型)。
  • 注意:scanf函数可以根据指定的格式读取不同类型的数据,如整数、浮点数、字符等。

总结一下它们的区别:

  • getchar函数用于读取单个字符,gets函数用于读取一行字符串,scanf函数可以根据指定格式读取不同类型的数据。
  • gets函数存在安全性问题,容易导致缓冲区溢出,不推荐使用。
  • scanf函数需要指定格式,可以更灵活地读取不同类型的数据。

1.3 EOF 解释

 

EOF是英文End of File的缩写,表示文件结束符。在文件读取过程中,当读取到文件末尾时,会返回一个特殊的值EOF,用于表示文件已经读取完毕。

 

EOF在C语言中被定义为一个常量,其值为-1。当使用标准库函数如fgetc()、fgets()等读取文件时,如果读取到文件末尾,这些函数会返回EOF作为结束标志。

 

EOF的使用可以帮助我们判断文件是否已经读取完毕,从而避免读取过程中出现错误。通常的做法是使用一个循环来读取文件,直到读取到EOF为止。

 

 

举例:

假设设置一串密码,密码为字符串

int main()

{

char password[20] = { 0 };

printf("请输入密码:");

scanf_s("%c", password);        //password本身就是地址,不需要&。

//getchar();//读取了\n

int ch = 0;

while ((ch = getchar()) != '\n')

{

;

}

printf("请确认密码(Y/N):");

int ret = getchar();

if ('Y' == ret)

{

printf("yes\n");

}

else

{

printf("no\n");

}

return 0;

}

 

1.4while ((ch = getchar()) != EOF)

这是一个C或C++语言中的while循环语句,用于从标准输入(通常是键盘)读取字符,直到遇到文件结束符(EOF)为止。

下面是对这个语句的逐步解释:

  • getchar(): 这是一个标准库函数,用于从标准输入(stdin)读取一个字符。

如果读取成功,它返回读取的字符的ASCII码值;如果读取失败或达到文件末尾,它返回EOF。

  • ch = getchar(): 这将getchar()函数的返回值赋值给变量ch。

这样,ch将存储从输入读取的每个字符的ASCII码值。

  • while ((ch = getchar()) != EOF): 这是一个while循环,它会反复执行其循环体,直到getchar()返回EOF.

在每次循环迭代中,它会从输入中读取一个字符,并将其存储在ch中,然后检查该字符是否是文件结束符(EOF)。

这个循环通常用于逐行读取输入,直到到达文件末尾。

例如

int main() {

    char ch;

    while ((ch = getchar()) != EOF) {

        putchar(ch);  // 输出读取的字符

    }

    return 0;

}

这个程序将从标准输入读取字符,并将它们输出到标准输出(通常是屏幕),直到遇到文件结束符(EOF)。

 

  • 14
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值