关于名字空间和头文件的问题:

来源:百度知道 编辑:UC知道 时间:2024/06/19 19:15:02
名字空间和头文件存在怎么样的关系啊?
比如俩个程序如下一个可运行,另一个提示出错:
#include <iostream>
#include<cstdio>
using namespace std;
int main()
{
char str[80];
cout<<"请输入一个字符串:";
gets(str);
cout<<"输出的字符串如下:";
cout<<str<<endl;
return 0;
}
上面的可以正常运行。下面的不可以运行:
#include <iostream.h>
#include<cstdio.h>
int main()
{
char str[80];
cout<<"请输入一个字符串:";
gets(str);
cout<<"输出的字符串如下:";
cout<<str<<endl;
return 0;
}这个不可以运行,为什么啊?

#include <iostream.h>
#include<stdio.h>

int main()
{
char str[80];
cout<<"请输入一个字符串:";
cout.flush();
gets(str);
cout<<"输出的字符串如下:";
cout<<str<<endl;
return 0;
}
这样就可以了,刷新缓冲区后,cout才输出;标准C++改进了这个问题(引入名字空间),所以你的第一个代码可以正常运行。

建议:不要C++输入和C输入混用,如果愿意接受的话,参考下面:
#include <iostream.h>
#include<stdio.h>
//using namespace std;
int main()
{
char str[80];
cout<<"请输入一个字符串:";

cin.getline(str,80,'\n');
cout<<"输出的字符串如下:";
cout<<str<<endl;
return 0;
}
这样用cin读取一行数据,也挺方便的,对吧?