cout i endl

0

Witam mam pytanie:

Według mnie za każdym razem kiedy warunek wewnętrznej pętli jest spełniony powinno się wykonać:

         
cout<<theChar;
cout<<endl;

a w książce jest napisane, że:

cout<<endl; 

wykonuje się tylko wtedy kiedy warunek pętli nie jest spełniony.
Chodzi mi o to czy nie powinno być czegoś na wzór "else". Nie rozumiem dlaczego jeden cout jest wykonywany kiedy warunek jest spełniony, a drugi cout kiedy nie jest spełniony. Wiem, że banał, proszę o pomoc. Tu cały kod:

#include <iostream>
using namespace std;

int main()
{
int w;
int k;
char theChar;
cin>>w;
cin>>k;
cin>>theChar;
for(int i=0;i<w; i++)

{
    for (int j = 0; j<k; j++)

        cout<<theChar;
        cout<<endl;

}
return 0;
}
 
3

brakuje Ci {}

http://fasadin.4programmers.net/
4.4.2 Wyjaśnienie pojęcia pętli

i nie uzywaj endl do nowej linii. Endl czysci rowniez bufor. Jezeli chcesz to nowa linie to uzyj "\n"

5

Bez klamerek wykona się tylko pierwsze wyrażenie po definicji pętli.

4

Rozwiązanie: formatuj kod.

0

hmm w książce nie ma klamerek. Według mnie to bardzo mylące. Dobra dzięki!

1

Jeśli nie ma klamerek, a jest taka indentacja i nie jest to przykład złych praktyk to zmień książkę natychmiast.

3

Klamerki nie są potrzebne do zrozumienia co tutaj sie dzieje. Popatrz na to:

for (int j = 0; j < k; j++)
    cout << theChar;

cout << endl;
0

Mam jeszcze małe pytanie:
Zadano mi pytanie co to oznacza:

char* 

Co powinienem odpowiedzieć?

1

To jest wskaźnik na char. Polecam dowolny kurs C/C++.

0

Rozumiem. Tak dla pewności: ten zainicjalizowany pusty wskaźnik możemy to zapisać na trzy rożne sposoby? (chodzi mi o białe znaki)

 
int* x = 0
int *x = 0
int * x = 0

?

1
arturek999 napisał(a):

Rozumiem. Tak dla pewności: ten zainicjalizowany pusty wskaźnik możemy to zapisać na trzy rożne sposoby? (chodzi mi o białe znaki)

 
int* x = 0
int *x = 0
int * x = 0

?

Można też w ogóle bez spacji. :)

int*x=0

Ale nie polecam. :)

2
int



              *


x=

0
               ;

Tak też można.

1 użytkowników online, w tym zalogowanych: 0, gości: 1