找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1419|回复: 3

请教一个进制输入输出问题

[复制链接]
发表于 2009-10-31 01:23:46 | 显示全部楼层 |阅读模式 IP:江苏扬州
学习了C++有一段时间,却发现有些基本问题还是不过关,下面向大家请教一个问题:
输入八进制,十六进制数,并用十进制,八进制,十六进制分别输出这些数;
请问用cin怎样输入八进制,十六进制数,可否用cin.flags(ios::oct) 和 cin.flags(ios::hex)控制输入, 不过好像输出不了,我输出的时候也用了cout.flags(ios::oct) 和cout.flags(ios::oct)
发表于 2009-10-31 01:23:47 | 显示全部楼层 IP:江苏扬州
这是我的一道作业,请大伙帮我看一下,运行时有一点问题(就是上面说的问题),我用的Visual studio.net 2003
//-------------stdafx.h---------------
#include <iostream> #include <iomanip> #include <tchar.h>
using namespace std;
//Number.h
class CNumber { public: CNumber(void); ~CNumber(void); protected: int *fNumber,precision; double pNumber; char *fString; public: void Enter(void); void Print1(void); void Print2(void); };
//------------Number.cpp------------------
#include "StdAfx.h" #include ".\number.h" #using <mscorlib.dll>
CNumber::CNumber(void) : fNumber(NULL) , fString(NULL) , precision(0) { }
CNumber::~CNumber(void) { if(fNumber) delete []fNumber; if(fString) delete []fString; }
void CNumber::Enter(void) { cout<<"请分别以十进制,八进制,十六进制输入三个数:"; for(int i=0;i<3;i++) { if(i==0) cin>>fNumber[i]; if(i==1) {cin.get();cin.flags(ios::oct|ios::showbase); cin>>fNumber[i];} if(i==2) {cin.get();cin.flags(ios::hex|ios::showbase); cin>>fNumber[i];} } cout<<"输入一个浮点数并指定精度:"; cin>>pNumber>>precision; cin.get(); cout<<"输入一串字符:"; fString=new char[30]; cin.getline(fString,30); }
void CNumber::Print1(void) { ///---------用流成员函数--------- cout<<'\n'<<"以左和右对齐的方式输出整数(域宽为12):"<<endl; for(int i=0;i<3;i++) { cout.width(12); cout.flags(ios::dec); cout.setf(ios::left); cout<<fNumber[i]<<"\t"; } cout<<endl; for(int i=0;i<3;i++) { cout.width(12); cout.flags(ios::dec); cout.setf(ios::right); cout<<fNumber[i]<<"\t"; } cout<<'\n'<<"以八进制、十进制、十六进制输出整数:"<<endl; for(int i=0;i<3;i++) { cout<<fNumber[i]<<"\t"; cout.setf(ios::oct|ios::showbase); cout<<fNumber[i]<<"\t"; cout.flags(ios::hex|ios::showbase); cout<<fNumber[i]<<endl; } cout<<'\n'<<"浮点数的输出:"<<endl; cout.precision(precision); cout.setf(ios::scientific); cout<<"指数格式:"<<pNumber<<endl; cout.setf(ios::fixed,ios::floatfield); cout<<"定点格式:"<<pNumber<<endl; cout<<'\n'<<"输出字符串:"; cout<<fString<<endl; }
//------------aa.cpp----------------
#include "stdafx.h" #include "Number.h" #using <mscorlib.dll>
int _tmain() { // TOD 请用您自己的代码替换下面的示例代码。 CNumber data; data.Enter(); data.Print1(); return 0; }
回复

使用道具 举报

发表于 2009-10-31 01:23:48 | 显示全部楼层 IP:江苏扬州
我修改了一下,情况有所好转:
void CNumber::Enter(void) {//在这里加一句:fNumber=new int[3];
cout<<"请分别以十进制,八进制,十六进制输入三个数:"; .........
// 以下这句前加一句:cin.get();
cout<<"输入一个浮点数并指定精度:"; cin>>pNumber>>precision; cin.get();       //问题就是,这里的cin.get(); 好像不起作用,当输入完浮点数                           cout<<"输入一串字符:";    和精度后,就全部输出了,不能输入字符串 fString=new char[30]; cin.getline(fString,30); }
回复

使用道具 举报

发表于 2009-10-31 01:23:49 | 显示全部楼层 IP:江苏扬州
怎么没人应呢,live41老大,帮我看看好吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 15:30 , Processed in 0.136927 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表