2013-03-11 77 views
0

//編輯:我發現了我的錯誤。仍然我錯過了一件事:它不正確地計算線。如果.txt中的最後一個字符不是'\ n',它會減少1行。如果我打它,它會計數2。怎麼了 ?你可以幫我嗎?將.txt複製到int數組,然後保存到另一個文件

krol.txt =

2 4 
3 7 
3 13 
2 4 
3 1 

和main.cpp中

#include <iostream> 
#include <fstream> 
#include <cstdlib> 
using namespace std; 
int main(){ 
    ofstream outFile; 
    ifstream fin; 
    fin.open("krol.txt"); 
    int l=0; 
    char ch; 
    while (fin.good()){ 
     fin.get(ch); 
     if (ch=='\n') l++; 
    } 
    cout << l; 
    fin.close(); 
    fin.open("krol.txt"); 
    int temp[l][2]; 
    int savel=l; 
    l=0; 
    int i=0; 
     while (fin >> (temp[l][i])){ 
     i++; 
     if(i==2){ 
     i=0; l++; 
     } 
    } 

    outFile.open("save.txt"); 
    for (int i=0, j=0;j<savel;i++){ 
     if (i==2) { 
     i=0; j++; 
     } 
     outFile << temp[j][i]; 
    } 
    outFile.close(); 
    system("PAUSE"); 
    return 0; 
    } 
+0

將二進制數據寫入文本文件是一個禁忌。 – 2013-03-11 22:12:26

+2

該代碼將永遠不會編譯。 Brace不匹配,fout未聲明等。請張貼'真實'的代碼。 – Roddy 2013-03-11 22:22:56

+0

哦!我粘貼了錯誤的代碼。對此我很抱歉。現在糾正 – 2013-03-11 22:30:59

回答

0

我沒有C++高手,但不應

fout >> ch; 

fout << ch; 

(修正自托馬斯馬修斯的評論)

+0

實際上,'fin >> ch'可能是他的意思? – Roddy 2013-03-11 22:20:05

+0

我錯誤地粘貼了錯誤的代碼(未修正)。現在我編輯它爲可編譯的代碼。 – 2013-03-11 22:32:20

+0

如果它的輸出,它將是'fout << ch;' – 2013-03-11 23:19:45

相關問題