您的位置:首页 > 编程语言 > C语言/C++

新手学习C++笔记1:调试错误之找不到标识符

2014-08-05 11:38 1751 查看
今天学习结构体这块调试中时出现这样的错误:cpp(16): error C3861: “setw”: 找不到标识符。

程序如下:

#include<iostream>
using namespace std;
struct person
{
char name[10];
int age;
char tel[16];
char email[30];
};
struct person per;
int main(int argc,char*argv[])
{
cout<<"输入用户姓名、年龄、电话、邮箱地址:"<<endl;
cin>>per.name>>per.age>>per.tel>>per.email;
cout.flags(ios::left);
cout<<setw(14)<<"姓名"<<setw(6)<<"年龄"<<setw(20)
<<"电话"<<setw(32)<<"邮箱地址"<<endl;
cout<<setw(14)<<per.name<<setw(6)<<per.age<<setw(20)
<<per.tel<<setw(32)<<per.email<<endl;
return 0;
}


最后想了很久发现原来掉了一个#include <iomanip>,将其放在#include<iostream>和using namespace std之间,至于为什么少了#include <iomanip>就会出现“setw"找不到标示符,上网查了一下关于#include <iomanip>的介绍如下:

#include <iomanip>

io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)其作用主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。

setw( n ) 设域宽为n个字符这个控制符的意思是保证输出宽度为n。如:cout << setw( 3 ) << 1 << setw( 3 ) << 10 << setw( 3 ) << 100 << endl; 输出结果为_ _1_10100 (默认是右对齐)当输出长度大于3时(<<1000),setw(3)不起作用。setw(n)用法: 通俗地讲就是预设宽度如 cout<<setw(5)<<255<<endl;结果是255.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: