两个问题,请前辈们指教

cjklvzxj 2005-01-26 08:52:09
刚开始学C++,遇到了两个问题想不通:
第一个:
const float RATE = 0.05;
编译后VC会对这句会出现warning...
const float RATE = float(0.05);
这句就对了,这是为什么?干吗非要强制转换数据类型?0.05本身不就可以是float型吗?

第二个:
一个在顺序文件中保存从键盘输入字母的小程序代码如下:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
ofstream outFile;
outFile.open("T13ConE01.dat",ios::app);

if (outFile.is_open())
{
char character=' ';
cout<<"enter a character:"<<endl;
cin>>character;
while (character!='1')
{
outFile<<character<<endl;
cout<<"enter the next

character(enter 1 to end)"<<endl;
cin>>character;
}

}
else
cout<<"File could not be

opened!"<<endl;
outFile.close();
return 0;
运行结果我输入一个字符串也被保存了,为什么?我已经定义是

char型了,奇怪?
...全文
54 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
junnyfeng 2005-01-26
  • 打赏
  • 举报
回复
cin>>character;这句里如果输入的是字符串,那变量character会自己变成string型吗?

-----
不会的。只是有个循环,所以会把你输入的字符串中的逐个字符都输入到文件中,知道遇到字符‘1’为止
Old3Wolf 2005-01-26
  • 打赏
  • 举报
回复
1.
I think,if define a "const" identifier,you must use "==",not "=".
_______________________________
//const float RATE = 0.05;
const float RATE == 0.05;
cjklvzxj 2005-01-26
  • 打赏
  • 举报
回复
cin>>character;这句里如果输入的是字符串,那变量character会自己变成string型吗?
cjklvzxj 2005-01-26
  • 打赏
  • 举报
回复
怎么判断一个数是那种类型的?
oo 2005-01-26
  • 打赏
  • 举报
回复
2:
while (character!='1')
{
outFile<<character<<endl;
cout<<"enter the next

character(enter 1 to end)"<<endl;
cin>>character;
}

这不是有个循环吗
oo 2005-01-26
  • 打赏
  • 举报
回复
1: 0.05 是double类型,不是float类型

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧