输入文件中的数据:
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
我做错了什么?
答案 0 :(得分:1)
试试这个:
if (!(cin >> value >> value2 >> value3)) {
cout << "input failed" << endl;
return -1;
}
我的猜测是你的输入失败了。您还可以检查文件是否已正确打开,缺少您的代码。
BTW:没有必要明确关闭流,当它们超出范围并且调用它们的析构函数时它们会自动关闭。
答案 1 :(得分:0)
您的程序可能无法读取输入文件。为什么?根据输出值:
姓氏:名字salry:-9.25596e + 061increase:-858993460
这是因为Firstname
和salry
都是空的(即冒号后面没有任何内容),increase
和if (!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