2016-02-06 49 views
-1

數據:無法獲得OUTFILE從infile中讀取數據(C++)在輸入文件

威爾遜傑克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

@EdHeal:SO沒有發佈輸入文件的內容。 – user3813674

+1

這適用於我。你是如何編譯它的? – user3813674

+1

五塊錢說,該程序不是從輸入文件的同一目錄運行。 IDE有時候會玩這種愚蠢的小技巧。 – user4581301

回答

0

您的程序可能無法讀取輸入文件。爲什麼?基於輸出值:

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

這是由於這兩個LastnameFirstname是空的(即沒有什麼後如果你已經在你的代碼中完成了初始化你的變量,那麼在salryincrease之後的數字是很常見的。

你應該做的是檢查是否打開文件:

if (!in.is_open()) { 
    std::cerr << "Error opening input file!\n"; 
    exit(1); 
} 
+0

@ jdr1嘿感謝您的回覆,不幸的是我不能使用if語句,因爲如果語句不包含在本章中,我將被標記爲不使用正確的方法:( – Ninjaboi

1

試試這個:

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

我的猜測是,你輸入失敗。你也可以檢查文件是否被正確打開,你的代碼丟失了。

順便說一句:沒有必要顯式關閉流,當它們超出範圍並調用它們的析構函數時它們會自動關閉。

+0

你是對的,我確實得到「輸入失敗「,當我插入,所以我應該怎麼辦? – Ninjaboi

+0

你是否聽從」檢查文件是否打開「的建議?請注意,我認爲你足夠成熟,以瞭解如何,這就是爲什麼我沒有給出任何細節如何做到這一點。 –