无法获取outfile以从infile中读取数据(c ++)

时间:2016-02-06 07:54:28

标签: c++ string file out

输入文件中的数据:

Wilson Jack 87236.45 11

我的代码:

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace std;

int main()
{
     ofstream out;
     ifstream in;

string Lastname, Firstname;
double salary;
int increase;

in.open("Lab5_Ex_3_Input.txt");
out.open("Lab5_Ex_3_Output.txt");



in >> Lastname >> Firstname >> salary >> increase;
out << "Lastname: "<< Lastname << "Firstname " << Firstname << "salry :" << salary <<"increase: "<< increase <<endl;




in.close();
out.close();

return 0;
}

所以,当我检查输出文件时,我得到了:

姓氏:名字salry:-9.25596e + 061increase:-858993460

我做错了什么?

2 个答案:

答案 0 :(得分:1)

试试这个:

if (!(cin >> value >> value2 >> value3)) {
    cout << "input failed" << endl;
    return -1;
}

我的猜测是你的输入失败了。您还可以检查文件是否已正确打开,缺少您的代码。

BTW:没有必要明确关闭流,当它们超出范围并且调用它们的析构函数时它们会自动关闭。

答案 1 :(得分:0)

您的程序可能无法读取输入文件。为什么?根据输出值:

  

姓氏:名字salry:-9.25596e + 061increase:-858993460

这是因为Firstnamesalry都是空的(即冒号后面没有任何内容),increaseif (!in.is_open()) { std::cerr << "Error opening input file!\n"; exit(1); } 后面的数字是如果您已经在代码中完成了对变量的初始化,则会很常见。

您应该做的是检查文件是否已打开:

def improve_bubble_sort(list_of_values):
    count = 0
    for i in range(len(list_of_values)):
        for j in range(len(list_of_values)-1,i,-1):
            if list_of_values[j]<list_of_values[j-1]:
                count += 1
                bubble(values) 
    count += 1
    return count