Avatar billede 123maka Nybegynder
17. februar 2005 - 18:49 Der er 5 kommentarer

Jeg kan ikke bruge funktionen count i mine scripts

Hej, nu kommer jeg fra PHP-verdenen og troede at der fandtes en funktion ligesom count() i C++ også. Har også søgt om det på nettet og der er også folk der bruger count() i deres scripts, hvorfor kan jeg ikke?

Min kode:
#include <iostream.h>
main ()
{
        int x;
        int y;

        int x_max = 11; // The max that the X axe must show
        int y_max = 11; // -------||------- Y -----||------

        //Lets print the top of the table
        for(x = 0; x != x_max; ++x) {
                if(count(x) > 2) {
                        cout << x << "|";
                } else {
                        cout << x << " | ";
                }
        }


        while(x != x_max && y != y_max)
        {
                break; // Debugging purpose
        }
        return(0);
}

Hvad g++ udskriver:
template.cc: In function `int main()':
template.cc:14: error: `count' undeclared (first use this function)
template.cc:14: error: (Each undeclared identifier is reported only once for
  each function it appears in.
Avatar billede arne_v Ekspert
17. februar 2005 - 18:53 #1
Man kan ikke skrive en funktion i C/C++ som kan tælle antal elementer
et et normalt array.

Hvad skal du bruge count til i dit eksempel ?

Kan du ikke bare:

if(count > 2) {

eller

if(count >= 10) {
Avatar billede arne_v Ekspert
17. februar 2005 - 18:54 #2
De fleste C/C++ programmører vill enok skrive

for(x = 0; x != x_max; ++x) {

som

for(x = 0; x < x_max; x++) {
Avatar billede bertelbrander Novice
17. februar 2005 - 19:49 #3
Hvis der er tale om er rigtigt array kan man lave en macro:
#define COUNT_OF(a_) (sizeof(a_)/sizeof(a_[0]))

Og bruge den:
int main()
{
  int MyArray[123];
  std::cout << "Size: " << COUNT_OF(MyArray) << std::endl;
}

Men det virker ikke med:
void foo(int Arr[123])
{
  std::cout << "Size: " << COUNT_OF(Arr) << std::endl;
}

Ellers kan man bruge en std::vector, den har en size.
Avatar billede 123maka Nybegynder
17. februar 2005 - 20:37 #4
arne_v >
Ville regne ud om nummeret var enten 1 ciffer langt, 2 eller 3. Men så må jeg jo bare ordne den som du gør det.
Mht. for(x = 0; x != x_max; ++x) { så er det den bog jeg læser om det (Practical C++ Programming) der siger man skal gøre sådan.
Avatar billede arne_v Ekspert
17. februar 2005 - 20:43 #5
Du kan godt konvertere din int til en streng (char array) og så tage strlen på
den eller du kan bruge log10 til at beregne antal cifre.

Men jeg synes at det er at gå over åen efter vand.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester