Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Problemy z programem

Ostatnio zmodyfikowano 2011-12-29 15:00
Autor Wiadomość
pawajoro
Temat założony przez niniejszego użytkownika
Problemy z programem
» 2011-12-27 16:31:14
Mam problem z programem:
C/C++
#include <iostream>
#include <fstream>
using namespace std;

int linijki( std::fstream plik )
{
    if( plik.good() )
    {
        string napis;
        cout << "Zawartosc pliku:" << endl;
        int c;
        while( !plik.eof() )
        {
            getline( plik, napis );
            c++;
        }
        return( c );
    } else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
   
    return 0;
}


int main()
{
    fstream plik;
    plik.open( "C:/config.txt", ios::in );
    if( plik.good() )
         cout << linijki( plik );
   
    plik.close();
} else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;

return 0
}
Niestety kompilator informuje mnie

Compiling: C:\CBScripts\test.file.cpp
In file included from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ios:39,
                 from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ostream:40,
                 from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iostream:40,
                 from C:\CBScripts\test.file.cpp:1:
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h: In copy constructor 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h:790: error: 'std::ios_base::ios_base(const std::ios_base&)' is private
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:47: error: within this context
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf: In copy constructor 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf:770: error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:78: error: within this context
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here
C:\CBScripts\test.file.cpp: In function 'int main()':
C:\CBScripts\test.file.cpp:28: note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here
C:\CBScripts\test.file.cpp:28: error:   initializing argument 1 of 'int linijki(std::fstream)'
C:\CBScripts\test.file.cpp: At global scope:
C:\CBScripts\test.file.cpp:30: error: expected unqualified-id before 'else'
C:\CBScripts\test.file.cpp:31: error: expected unqualified-id before 'return'
C:\CBScripts\test.file.cpp:32: error: expected declaration before '}' token
Process terminated with status 1 (0 minutes, 0 seconds)
8 errors, 0 warnings
Co należy zrobić?
P-46396
pekfos
» 2011-12-27 16:59:06
..
Zobacz jak ci się kod formatuje. Za dużo '}' chociaż to mogłeś już przeczytać w logu..
P-46397
pawajoro
Temat założony przez niniejszego użytkownika
» 2011-12-27 17:06:13
Problem z klamrą rozwiązany, ale dalej daje mi to:

Compiling: C:\CBScripts\test.file.cpp
In file included from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ios:39,
                 from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/ostream:40,
                 from d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iostream:40,
                 from C:\CBScripts\test.file.cpp:1:
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h: In copy constructor 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/bits/ios_base.h:790: error: 'std::ios_base::ios_base(const std::ios_base&)' is private
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:47: error: within this context
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_ios<char, std::char_traits<char> >::basic_ios(const std::basic_ios<char, std::char_traits<char> >&)' first required here
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf: In copy constructor 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/streambuf:770: error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:78: error: within this context
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd: In copy constructor 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)':
d:\p\codeblocks\mingw\bin\../lib/gcc/mingw32/4.4.1/include/c++/iosfwd:87: note: synthesized method 'std::basic_filebuf<char, std::char_traits<char> >::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)' first required here
C:\CBScripts\test.file.cpp: In function 'int main()':
C:\CBScripts\test.file.cpp:29: note: synthesized method 'std::basic_fstream<char, std::char_traits<char> >::basic_fstream(const std::basic_fstream<char, std::char_traits<char> >&)' first required here
C:\CBScripts\test.file.cpp:29: error:   initializing argument 1 of 'int linijki(std::fstream)'
Process terminated with status 1 (0 minutes, 0 seconds)
5 errors, 0 warnings
P-46398
pekfos
» 2011-12-27 17:11:36
przekazuj obiekt fstream przez referencje.
P-46399
pawajoro
Temat założony przez niniejszego użytkownika
» 2011-12-27 17:23:44
No, skompilował się, ale wylatują mi kosmiczne wartości.  W tamtym pliku jest linijek 2113, a program zwraca ich 4530513.
P-46400
ison
» 2011-12-27 17:35:04
bo nie zerujesz
int c;
P-46401
pawajoro
Temat założony przez niniejszego użytkownika
» 2011-12-28 16:52:43
Mam teraz taki problem:
C/C++
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int linijki( fstream & plik )
{
    if( plik.good() )
    {
        string napis;
        int c = - 1;
        while( !plik.eof() )
        {
            getline( plik, napis );
            c++;
        }
        return( c );
    }
    else cout << "Error! Nie udalo przetworzyc sie pliku!" << endl;
   
    return 0;
}


void tablica( fstream & plik, string napis[], int i )
{
    int c = 0;
    while( c < i )
    {
        getline( plik, napis[ c ] );
        c++;
    }
}

int szukajznacznika( string table )
{
    int c = - 1;
    size_t znalezionaPozycja;
    {
        c++;
        znalezionaPozycja = table[ c ].find( "kuid-table {" );
    } while( znalezionaPozycja != string::npos )
         return c;
   
}

int main()
{
    fstream plik;
    plik.open( "C:/config.txt", ios::in );
    if( plik.good() )
    {
        int i = linijki( plik );
        string napis[ i + 1 ];
        tablica( plik, napis, i );
        int a =( szukajznacznika( napis ) );
        int k = i - a;
        string kuidy[ k ];
        plik.close();
    }
    else cout << "Error! Nie udalo otworzyc sie pliku!" << endl;
   
    return 0;
}
A kompilator informuje mnie:

Compiling: C:\CBScripts\test.file.cpp
C:\CBScripts\test.file.cpp: In function 'int szukajznacznika(std::string)':
C:\CBScripts\test.file.cpp:40: error: request for member 'find' in 'table.std::basic_string<_CharT, _Traits, _Alloc>::operator[] [with _CharT = char, _Traits = std::char_traits<char>, _Alloc = std::allocator<char>](((unsigned int)c))', which is of non-class type 'char'
C:\CBScripts\test.file.cpp: In function 'int main()':
C:\CBScripts\test.file.cpp:54: error: conversion from 'std::string*' to non-scalar type 'std::string' requested
Process terminated with status 1 (0 minutes, 0 seconds)
2 errors, 0 warnings
P-46500
Mrovqa
» 2011-12-28 18:21:08
C/C++
int szukajznacznika( string table )
{
    int c = - 1;
    size_t znalezionaPozycja;
    { // przypadkiem nie zgubiłeś: do ??
        c++;
        znalezionaPozycja = table[ c ].find( "kuid-table {" ); // 1.
    } while( znalezionaPozycja != string::npos )
         return c;
   
}
1. Wyrażenie
table[ c ]
 jest typu
char
, a nie
string
...
P-46507
« 1 » 2
  Strona 1 z 2 Następna strona