百度上看到一个问题不懂,关于ofstream ofs输出问题,需要加std::,请高手来讲讲

[复制链接]
查看11 | 回复5 | 2021-1-27 06:45:35 | 显示全部楼层 |阅读模式
#include
#include
#include
#include
usingnamespacestd;
intmain()
{
doublea;
doubleb;
doublec;
system("dir\\\Rick\\R.G.O.S.Download/A:D/B>update.txt");
ifstreamfin("\\\Rick\\R.G.O.S.Download\\update.txt");
while(!fin.eof())
{
fin>>a;
fin.close();
}
ifstreamfin("update.txt");
fin>>b;
fin.close();
c=b-10*a+30;
if(c>=0)
{
system("delupdate.txt/Q/F");
ofstreamfout("update.txt");
fout
说编译出现redeclarationof'std::ifstreamfin'和'std::ifstreamfin'previouslydeclaredhere
百度上给出的答案是这样的
#include
#include
#include
#include
usingnamespacestd;
intmain()
{
doublea;
doubleb;
doublec;
system("dir\\\Rick\\R.G.O.S.Download/A:D/B>update.txt");
{//这里
ifstreamfin("\\\Rick\\R.G.O.S.Download\\update.txt");
while(!fin.eof())
{
fin>>a;
fin.close();
}
}//这里
{//这里
ifstreamfin("update.txt");
fin>>b;
fin.close();
c=b-10*a+30;
if(c>=0)
{
system("delupdate.txt/Q/F");
ofstreamfout("update.txt");
fout
就是补了几个大括号,请问这是为什么呢?
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
redeclarationof'std::ifstreamfin'和'std::ifstreamfin'previouslydeclaredhere

fin声明了2次,加了{}之后变成{}块内的局部变量了。
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
或者你把fin换个名字,和系统库中的同名了
加了大括号变量就只属于该大括号内,所以可以有同名
就比如

intmain()
{
inta=1;
inta;//错误
if(...)
{
inta;//没问题,只是屏蔽了外面定义的a
}
}

回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
引用2楼paschen的回复:或者你把fin换个名字,和系统库中的同名了
加了大括号变量就只属于该大括号内,所以可以有同名
就比如

intmain()
{
inta=1;
inta;//错误
if(...)
{
inta;//没问题,只是屏蔽了外面定义的a
}
}

说错,不是和系统中的同名,是你定义了两次,加了大括号则只是在该括号内局部的
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
引用1楼GoToLoLua的回复:redeclarationof'std::ifstreamfin'和'std::ifstreamfin'previouslydeclaredhere

fin声明了2次,加了{}之后变成{}块内的局部变量了。

哦,我一开始不懂为啥还要std,以为我看他在外部写了usingnamespacestd;了,怎么后面还要。
回复

使用道具 举报

千问 | 2021-1-27 06:45:35 | 显示全部楼层
引用3楼paschen的回复:Quote: 引用2楼paschen的回复:
或者你把fin换个名字,和系统库中的同名了
加了大括号变量就只属于该大括号内,所以可以有同名
就比如

intmain()
{
inta=1;
inta;//错误
if(...)
{
inta;//没问题,只是屏蔽了外面定义的a
}
}

说错,不是和系统中的同名,是你定义了两次,加了大括号则只是在该括号内局部的

恩,的确是定义了两次。
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行