2013-03-11 1 views
0

// Edit: Я обнаружил свою ошибку. Тем не менее, мне не хватает 1 вещи: она не учитывает строки правильно. Если последний символ в .txt isnt '\ 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

Написание двоичных данных в текстовый файл является no-no. –

+2

Этот код будет * НИКОГДА не компилироваться. Неисправности скобки, fout undeclared и т. Д. Пожалуйста, напишите «реальный» код. – Roddy

+0

ой! Я вставил неправильный код. Я сожалею о том, что. его исправлено –

ответ

0

Я не эксперт C++, но не должен

fout >> ch; 

быть

fout << ch; 

?

(Исправлено из комментария Томаса Мэтьюза)

+0

на самом деле, 'fin >> ch 'может быть, что он имеет в виду? – Roddy

+0

Я ошибался в том, что вставлял неправильный код (нескорректированный). Теперь я отредактировал его для компиляции кода. –

+0

Если его вывод будет «fout << ch;» –

Смежные вопросы