Tmeperatures 只管换算和打印,循环的控制交给 main 逻辑上会觉得更好一些。
用 scanf("%f", &fah) == 1 这个条件,可以看出是不是成功读了一个值。当它返回 0 的时候,表示它没读成。你可以用 getchar 之类的查输入的是不是 'q'。是的话,break。不是的话,你可以考虑怎么做错误处理。
考虑的问题挺复杂的,一般可以尽量简化:
比如我输入的是 1.34abc 这个怎么算?算是输入了一个非数字,还是算数字?应该转换还是退出?如果是这种情况,用 scanf 就查不出来。它会把 1.34 读进去,然后把 abc 留存缓冲区,下次再读才会出错。如果这不是你想的,就要避免用 scanf 这个函数。
用 scanf("%f", &fah) == 1 这个条件,可以看出是不是成功读了一个值。当它返回 0 的时候,表示它没读成。你可以用 getchar 之类的查输入的是不是 'q'。是的话,break。不是的话,你可以考虑怎么做错误处理。
考虑的问题挺复杂的,一般可以尽量简化:
比如我输入的是 1.34abc 这个怎么算?算是输入了一个非数字,还是算数字?应该转换还是退出?如果是这种情况,用 scanf 就查不出来。它会把 1.34 读进去,然后把 abc 留存缓冲区,下次再读才会出错。如果这不是你想的,就要避免用 scanf 这个函数。