学习《钱能 c++ 》的疑问,是不是因为编译器的原因?
刚刚开始学钱能c++
学到第二章
在调试书中的例题时碰到了如下的问题
例子如下
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
cout << setiosflags(ios::right)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
cout << setiosflags(ios::left)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
system("PAUSE");
return 0;
}
得到的结果是:
1 2 3
1 2 3
显然是setiosflags(ios::left)的设置
没有起到作用
采用dev_c++和vc++ 6.0编译
程序很简单,应该没什么问题
得到这样的结果是不是因为编译器的原因
问题点数:10、回复次数:7Top
1 楼arfi()回复于 2003-07-03 13:07:53 得分 0
把
#include <iostream>
#include <iomanip>
using namespace std;
换成
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h> /*for system*/
就好了,原因不知道。Top
2 楼pushser(捕食者)回复于 2003-07-03 13:18:40 得分 0
你不用using namespace std;
#include <iomanip.h>
#include <iostream.h>Top
3 楼callzjy((草魚))回复于 2003-07-03 14:27:10 得分 0
// welcome.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "iostream.h"
#include "iomanip.h"
#include "stdlib.h"
//using namespace std;
int main(int argc, char* argv[])
{
cout << setiosflags(ios::right)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
cout << setiosflags(ios::left)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
system("PAUSE");
return 0;
}
-------------------
1 2 3
1 2 3
请按任意键继续 . . .
Press any key to continue
----------
vc6.0编绎通过
Top
4 楼autfx(边城浪子)回复于 2003-07-03 14:57:34 得分 0
为什么我的及其运行正常阿?Top
5 楼Octogen(Last Bug Standing)回复于 2003-07-03 15:31:36 得分 10
不是编译器的事。流的操控器用完要清空。
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
cout << setiosflags(ios::right)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
cout << resetiosflags( ios::right ) /* !!! */
<< setiosflags(ios::left)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
system("PAUSE");
return 0;
}
缺省设置可以不理会,如下面这样也行:
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
cout << setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
cout << setiosflags(ios::left)
<< setw(5) << 1
<< setw(5) << 2
<< setw(5) << 3 << endl;
system("PAUSE");
return 0;
}
Top
6 楼ufouser(ufouser)回复于 2003-07-03 15:57:32 得分 0
<iostream.h>和<iostream>对setiosflags不同?Top
7 楼yourworking(酒肉双全)回复于 2003-07-03 19:07:24 得分 0
关键由这句话using namespace stdTop



