错误提示:它是已删除的函数,求解答,谢谢!

//程序片段意图:判断程序目录下是否存在input.txt文件,若不存在,则提示输入文件路径

//错误:函数调用出错input _ error(input) 中“input”被划出,提示调用函数是已删除函数 ==

 int input_error(fstream i){
    if (!i){
        cerr << endl << "Fail to open the file!" << endl << endl;
        return -1;
    }
    else
        return 0;
}
int main(){
    int n;
    fstream input("input.txt");
    if (input_error(input) == -1){
        fstream input;
        string filename;
        cout << "Please input the absolute path of the file:";
        getline(cin, filename, '\n');
        input.open(filename);
        if (input_error(input) == -1)return -1;
    };

以下为源代码,希望能够得到各位大神的解决,谢谢!

#include<iostream>
#include <iomanip>
#include<fstream>
#include<string>
using namespace std;
long long Fibo[90] = { 0 };
unsigned long long fibo(long n){
    if (n <= 1)
        return Fibo[n] = n;
    else if
        (Fibo[n] != 0) return Fibo[n];
    else
        return Fibo[n] = fibo(n - 1) + fibo(n - 2);
}
int input_error(fstream i){
    if (!i){
        cerr << endl << "Fail to open the file!" << endl << endl;
        return -1;
    }
    else
        return 0;
}
int main(){
    int n;
    fstream input("input.txt");
    if (input_error(input) == -1){
        fstream input;
        string filename;
        cout << "Please input the absolute path of the file:";
        getline(cin, filename, '\n');
        input.open(filename);
        if (input_error(input) == -1)return -1;
    };
    input >> n;
    input.close();
    if (n<0 || n>90){
        cout << endl << "The integer is illegal!" << endl << endl;
        return -1;
    }
    else
        cout << endl << "n: " << n << endl;
    cout << endl << "Result: " << fibo(n) << endl;
    cout << endl << "—————Process—————" << endl;
    for (int i = 0; i <= n; i++){
        cout << setw(2) << setfill('0') << i << ".....";
        cout << setw(19) << setfill('.') << Fibo[i] << endl;
    }
    cout << endl;
    return 0;
} 

再次感谢!
//:~

0

2个回答

int main(){
int n;
fstream input("input.txt");
if (input_error(input) == -1){
fstream input;
,,,
这里input你定义了2次,后面你用的是里面那个

2
/*Fibonacci 1410729 许木胜 */
#include<iostream>
#include <iomanip>
#include<fstream>
#include<string>
using namespace std;
long long Fibo[90] = { 0 };
unsigned long long fibo(long n){
    if (n <= 1)
        return Fibo[n] = n;
    else if
        (Fibo[n] != 0) return Fibo[n];
    else
        return Fibo[n] = fibo(n - 1) + fibo(n - 2);
}
int input_error(fstream i){
    if (!i){
        cerr << endl << "Fail to open the file!" << endl << endl;
        return -1;
    }
    else
        return 0;
}
int main(){
    int n;
    fstream input("input.txt");
    if (input_error(input) == -1){
        fstream input;
        string filename;
        cout << "Please input the absolute path of the file:";
        getline(cin, filename, '\n');
        input.open(filename);
        if (input_error(input) == -1)return -1;
    };
    input >> n;
    input.close();
    if (n<0 || n>90){
        cout << endl << "The integer is illegal!" << endl << endl;
        return -1;
    }
    else
        cout << endl << "n: " << n << endl;
    cout << endl << "Result: " << fibo(n) << endl;
    cout << endl << "—————Process—————" << endl;
    for (int i = 0; i <= n; i++){
        cout << setw(2) << setfill('0') << i << ".....";
        cout << setw(19) << setfill('.') << Fibo[i] << endl;
    }
    cout << endl;
    return 0;
} 

以上才是源代码,第一次提问,错误请原谅= =

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++“(已隐式声明)--它是已删除的函数 ” “尝试引用已删除的函数”知识点MARK
今天写一个简单的文件处理工具类时遇到了一个新bug,是一个之前忽略掉的知识点,特此mark一下。 错误如下: c++类在初始化的时候有两种方式: 1. M_CLASS m_class(...); 2. M_CLASS m_class = M_CLASS(...); 编译器对二者处理的不同之处在于:前者通过构造函数直接对对象m_class中的成员变量进行赋值,而后者则是先初始化一个临...
c++ 11 中显式默认设置的函数和已删除的函数 总结
今天在一个类中看到如下代码不是很懂,原来是c++11 新特性 RateTimer(const RateTimer&amp;amp;) = delete; //不可拷贝/不可赋值 RateTimer&amp;amp; operator=(const RateTimer&amp;amp;) = delete; 在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数。 已删除的函数还可为您提...
error:尝试引用已删除的函数或已显式删除函数
很基础的操作在重载运算符的时候,尤其是<<和>>运算符重载,我们也许会遇到这个问题,一般情况下就是函数的声明没有写好,如这样的声明:friend std::ostream operator<<(std::ostream &out, <class Type> &G)这个错误就是operator前没有加取地址符号,加上就可以解决问题。friend std::ostream &operator<<(std
C++Error2208:...尝试引用已删除的函数
C++Error2208:…尝试引用已删除的函数在使用自己编写的类实例化c++stl容器vector时,调用了vector.erase()方法,结果编译器报了以下错误 错误 C2280 “(类名)::operator =(const rc17::FindRegion &)”: 尝试引用已删除的函数 F:\vs2015\VC\include\xutility 2581 从错误
C++构造、析构和赋值
(05)了解C++默默编写并调用那些函数
智能指针(四):unique_ptr浅析
前言 unique_ptr这个指针是C++11标准时被引入标准库的,有一种说法称它是boost::scoped_ptr的一个分身,并且它在C++11的时候“转正”了,但是scoped_ptr还被留在boost库中,看来没有转正的机会了,不过unique_ptr与scoped_ptr确实很像,unique_ptr只比scoped_ptr多了一个移动语义,可以通过std::move()函数来转移内部...
C++学习笔记16,C++11中的显式的默认构造函数以及显示删除默认构造函数
在早期的C++中,如果需要一个不接收任何参数的构造函数C++11中提供了
textbox数据绑定的错误
求大家给予解答,谢谢!
error C2280: 尝试引用已删除的函数
编程时的一些小问题 class A : public B { className objectName; } 结果在 A * a = new A() 时提示错误 “error C2280: “尝试引用已删除的函数” 结果发现问题所在:在 className objectName 中,其析构函数没有 public 造成的。 即: class classNa...
VC将二维数组显示为图像
将二维数组传递给本函数,本函数会将数组显示为图像。注意数组传递前需先转换为char型。 图像显示是windows编程的基础,本程序可作为一个子函数用于调用,可同时显示多张图像。
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
// Created by www.runoob.com on 15/11/9. // Copyright © 2015年 菜鸟教程. All rights reserved. // #include int main( ) { long a,b,c,d,e,x; printf("请输入 5 位数字:"); scanf("%ld",&x); a=x/100
关于单链表的逆置问题
大家都知道单链表是只能前结点找到后结点的,关于单链表的逆置也困扰了我很久,终于受不了了,进行了一番重新学习 在我学到的方法有这么几种:三指针法(也可以理解为辅助指针法)、头插法、今天学到的递归; 壹、三指针法:我们先来看这个理解图 这个图看上去应该可以很好的理解这种方法; 下面就是三指针法的实现: typedef int DataType; //类型定义 typedef struc...
给出一个正整数,求出它是几位数,逆序输出各位数字,顺序输出各位数字。
///(1)给出一个整数1235644打印出来应该为7.c程序应该为:(2)求出逆序数字例如输入数字123456而打印出来则是654321(3)而顺序输出各个数字,逆序的话是先输出再除等,顺序则应该调整位置,先除等再输出。顺序时应该使用 void Printorder(int n)....
求解答,求解答,求解答,谢谢
![图片](https://img-ask.csdn.net/upload/201512/14/1450082237_371680.jpg)
JAVA算法题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。   看到网上给出的程序,个人觉得还可以再优化一下。 网上程序为: import java.util.Scanner; public class Ex24 { public static void main(String[] args) {    Ex24 tn = new Ex24();
给一个不多于5位的正整数,要求:(1)求它是几位数,(2)逆序打印出各位数字。
#include void main() { int m,i,count=0; printf("请输入一个不多于五位的整数:\n"); scanf("%d",&m); while(m>0) { i=m%10; m=m/10; count++; printf("%3d",i); } printf("\n"); printf("此数有 %d
【程序24】 题目:给一个不多于5位的正整数,要求: 一、求它是几位数,二、逆序打印出各位数字。
/* 2017年3月8日9:41:34 java基础50道经典练习题 例24 Athor: ZJY Purpose: 【程序24】 题目:给一个不多于5位的正整数,要求: 一、求它是几位数,二、逆序打印出各位数字。 */ public class ProgramNo24_1 { public static void main(String[] args) { int n
练习2:写⼀个函数, ⽤用正则表达式清除字符串串中的’[’、’]’和其中的内容
#去除[]以及[]之间的内容 import re s = “[lol]你好,帮我去除括号以及括号中的内容。[smile]。谢谢!” ss = re.sub(r’[.*?]’, “”, s) print(ss)
查询目前已登录的用户,用户最近登录的时间
查询使用者: w, who, last, lastlog 如何查询一个用户的相关数据呢?这还不简单,我们之前就提过了 id, finger 等命令了,都可以让您了解到一个用户的相关信息啦!那么想要知道使用者到底啥时候登陆呢?最简单可以使用 last 检查啊!这个玩意儿我们也在 第十一章 bash 提过了,您可以自行前往参考啊!简单的很。  
2018.2.14,我们要结婚了!
谢谢各位这么关心我,等我真结婚了一定通知你
【程序24】TestNumber.java 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
//【程序24】TestNumber.java 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 import javax.swing.JOptionPane; public class TestNumberApp { /** * @param args */ public static void main(String[] args) { //
蔡高厅高等数学27-复合函数求导法则
例3 求 y = a^x(a &amp;gt; 0, a &amp;lt;&amp;gt; 1) 的导数解:利用反函数的求导公式三、复合函数的导数像lntanx、e^(x^2) 、sin(2x/1+x^2) 复合函数复合函数的求导法则 - 设 u = φ(x) 在x 点可导, 而y=f(u)在对应点u可导,则y=f[ φ(x)]在x点可导, 具有    dy / dx = df(u) / du * du / dx= f'...
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 【注意: 如果输入的大于了5位数要求用户重新输入】
给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。【注意: 如果输入的大于了5位数要求用户重新输入】def weishu(num): n=1 while True: num//=10 if(num==0): break else: n+=1; return ...
CSDN个人博客不小心删除了怎么办 - 联系网站管理员找回
今天清理草稿箱的时候不小心把几篇博客也给删了...因为现在的博文管理页面下,在“草稿箱”执行删除操作后会自动跳转到“文章管理”目录下,如果像我一样粗心,可能就会接着点“删除”,然后就悲剧了。 这个时候不要慌,首先你的博文在“回收站”还可以找到。但是打开博文之后也是不能编辑的(至少我在发这篇博文时是这样)。 解决方法是找管理员帮你恢复。 一种方法是发帖或者私信(我没试过
基于云端的薪资管理服务ZenPayroll每月薪资处理额超1亿美元,计划扩张至5个新地区
TNW消息,于八个月前推出基于云端的薪资管理服务的ZenPayroll,目前它每月需处理的薪资额已经超过 1 亿美元,公司透露本月还将增加 2 千 5 百万美元。 ZenPayroll 将服务对象瞄准了中小企业,而他们的薪资管理解决方案也更为简单,如下: 用户只需 10 分钟时间便可完成注册并开始使用后台仪表盘。相反地,包括 ADP 在内的市场巨头的使用技术门槛很高,需要培训。注册后,
NHProfiler 1.0 (正式,目前最新) 破解版 Nhibernate Profiler
NHProfiler 1.0 正式版的破解版本,之前那个破解是 0.9 的版本(非正式版) 本来准备写注册机的,但发现他使用的是RSA,所以就没办法了,只能强破了,如果升级后不能使用 请下载NHProfilerCrack 无错版,就在上面有 ------------------------ 同样:如果觉得好用请使用正版
vc6.0 中国象棋源码
声明:本作品并非本人开发,也只是拿来做参考。 一个基本的中国象棋游戏
求MS-6714 BOIS
求MS-6714 BOIS 谢谢求MS-6714 BOIS 求MS-6714 BOIS 谢谢求MS-6714 BOIS 求MS-6714 BOIS 谢谢求MS-6714 BOIS
高等数学:第二章 导数与微分(4)高阶导数
§2.5  高阶导数 我们知道,变速直线运动的速度是位置函数对时间的导数,即 或 。 而加速度  又是速度  对时间  的导数,即  或 这种导( 函 )数的导数 或 叫做对的二阶导数,记作    或  。 一、高阶导数的定义 相应地,把的导数 叫做函数的一阶导数。 类似地, 二阶导数的导数,叫做三阶导数,三阶导数的导数叫做四阶导数,…,一般地,阶导数的导数叫做  阶导数,分...
输入一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
繁琐的方法:
输入一个不多于五位的整数,输出它是几位数,各位数字,及其逆序
输入一个不多于五位的整数,输出它是几位数,各位数字,及其逆序
指针求三角函数积分
#include #include int main() { float integral(float(*p)(float),float,float,int);     float fsin(float); float a,b,(*p)(float),c;int n=20; printf("input the a and b:"); scanf("%f %f",&a,&b); p
给定一个整数:求它是几位数;顺序输出它的每一位数:逆序输出每位数
(1)求它是几位数#include &amp;lt;stdio.h&amp;gt;int Getfigures(int n)        //统计整数n的位数{                                                    int count=0;  do {  count++;  n/=10; }while(n!=0); return count; }/* int Ge...
高数 08.02 可分离变量微分方程
可分离变量微分方程
输入一个不多于5位的正整数,求它是几位数并且逆序打印出个位数字
#include int main() { int i, j = 0, k, array[5], a, num, tmp, sum = 0; printf("Please enter a small 5 digit integer:"); while(1) { if((scanf("%d",&num) != 1) || getchar() != '\n') { printf("
主浏览器从计算机 X上收到 一个服务器宣告,认为它是传输 XXX 上的域主浏览器。 主浏览器已停止或一个主浏览器选举已开始。
系统日志中有这样的话:主浏览器从计算机 X上收到 一个服务器宣告,认为它是传输 XXX 上的域主浏览器。  主浏览器已停止或一个主浏览器选举已开始。注册表hkey_local_machine/system/currentcontrolset/services browser/parameters/maintainserverlist这个就是浏览器列示,键值是yes和no,就是说这一台可以作为主
删除或修改表时提示:无法更改表,因为它正在为复制而发布
PRB: You receive error 3724 when you drop a non-replicated objecthttp://support.microsoft.com/?id=326352SYMPTOMSWhen you try to drop or to rename an object (a table, a view, or a stored procedure) tha
无法引用函数"CEdit::CEdit(const CEdit &)"(已隐式声明)--它是已删除的函数 是什么意思?
在CInterpretDlg.h中申明了rn[code=c]rnpublic:rn CEdit m_Code;rn[/code]rn另一个文件Lexical.h中定义一个函数Getrn[code=c]rnclass Lexicalrnrnpublic:rn rn Lexical();rn void Get(CEdit m_Code);//获取代码框中的文字rn ~Lexical();rn;rn[/code]rn然后我在CInterpretDlg.cpp中调用rnGet(m_Code);rn结果m_Code划红线了报错:rn无法引用函数"CEdit::CEdit(const CEdit &)"(已隐式声明)--它是已删除的函数rnrn请问是什么意思?谢谢
1、给定正整数,求是几位数、顺序输出、逆置输出;2、求一个数二进制位模式从左到右逆置后的值
题目:给出一个不多于5 位数的正整数,要求: 1、求出它是几位数;2、按逆序输出各位数字,例如原数为321,应输出123;3、分别输出每一位数字。 1、求位数:对于数字n来说,我们采用“丢弃个位数”的思想,即每做一次n/10,就能丢掉n的个位数,直到n/10=0;设置一个tmp变量初始化为0,每丢掉一个个位数,对tmp加1,最后函数返回tmp的值。此外,应当考虑输入0的特殊情况,对于0,我们直接在...
不多于5位数的正整数1、求出它是几位数;2、按逆序打印出各位数字。
《C程序设计 第二版》P105 5.7 给一个不多于5位数的正整数,要求:1、求出它是几位数;2、分别打印出每一位数字;3、按逆序打印出各位数字,例如原数为321,应输出123. 答:第2问和第3重复,没写第2问,直接第3问。 #include int main() { int x,w5,w4,w3,w2,w1; w5=w4=w3=w2=w1=0; printf("请输入一个不多于5
文章热词 设计制作学习 统计学稳健估计opencv函数 机器学习教程 Objective-C培训 交互设计视频教程
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 人工智能培训谢谢 数据库已选课程查询