Problem z kompilacją programu

0

Dlaczego dany program nie chce się skompilować tak, aby wyświetlić ten tekst na ekranie? W poleceniu jest napisane, że tekst musi być DOKŁADNIE TAKI. I jak zrobić tak, aby usłyszeć krótki sygnał dźwiękowy po wypisaniu tekstu?

int main (void){
  printf("Zadanie 16.\n\n");
  printf("Uzywanie sekwencji specjalnych.\n\n");
  printf("\n");
  printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
  printf("Czy "a" oznacza w C to samo co 'a'?");
  printf("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\");
  printf("\n");
  printf("Koniec.")
}
3

Aktualnie kompliator widzi Twój kod w taki sposób:

printf( "Czy " a " oznacza w C to samo co 'a'?" );

Aby wskazać kompilatorowi, że " powinien stanowić część ciągu znaków (a nie go terminować), możesz wykorzystać backslash:

printf("Czy \"a\" oznacza w C to samo co 'a'?");
0
Patryk27 napisał(a):

Aktualnie kompliator widzi Twój kod w taki sposób:

printf( "Czy " a " oznacza w C to samo co 'a'?" );

Aby wskazać kompilatorowi, że " powinien stanowić część ciągu znaków (a nie go terminować), możesz wykorzystać backslash:

printf("Czy \"a\" oznacza w C to samo co 'a'?");

Zrobiłem tak i wyświetlają się takie błędy:
clang-7 -pthread -lm -o main main.c
main.c10: warning: missing terminating '"' character [-Winvalid-pp-token]
printf("\\\\\\\\\\\\\\\\\");
^
main.c10: error: expected expression
main.c10: warning: missing terminating '"' character [-Winvalid-pp-token]
printf("\\\\\\\\\\\\\\\\\");
^
main.c6: error: expected '}'
}*/
^
main.c16: note: to match this '{'
int main (void){
^
2 warnings and 2 errors generated.
compiler exit status 1

W linii 94.6 mam już inny program, który jest zadaniem 20 z drugiego przeze mnie założonego tematu i nie widzę tam nic podejrzanego (komentuję przez /* */).

2

Nie zwróciłem początkowo uwagi na tę linię pełną backslashów - w takiej sytuacji:

printf("\\"); // wyświetli pojedynczy backslash
printf("\\\\"); // wyświetli dwa backslashe

... stąd powinno już być prosto :-)

0
Patryk27 napisał(a):

Nie zwróciłem początkowo uwagi na tę linię pełną backslashów - w takiej sytuacji:

printf("\\"); // wyświetli pojedynczy backslash
printf("\\\\"); // wyświetli dwa backslashe

... stąd powinno już być prosto :-)

Ale nie jest, bo ma być 35 ukośników. I jak dodać ten sygnał dźwiękowy?

2

Ale nie jest, bo ma być 35 ukośników

Skoro \\ powoduje wyświetlenie efektywnie jednego ukośnika, prosta matematyka podpowiada, że będziesz potrzebował albo pętli, albo ciągu znaków zawierającego 70 ukośników.

I jak dodać ten sygnał dźwiękowy?

printf("\a");, o ile dobrze pamiętam.

0
Patryk27 napisał(a):

Ale nie jest, bo ma być 35 ukośników

Skoro \\ powoduje wyświetlenie efektywnie jednego ukośnika, prosta matematyka podpowiada, że będziesz potrzebował albo pętli, albo ciągu znaków zawierającego 70 ukośników.

I jak dodać ten sygnał dźwiękowy?

printf("\a");, o ile dobrze pamiętam.
Okej, dzięki. Trochę to brzmi jak stukanie palcem po stole xD Da się to jakoś zmienić?

1

Da się to jakoś zmienić?

\a to tzw. bell character, i jest - z tego co kojarzę - jest raczej statyczny.

Jeśli chcesz uzyskać ciekawsze dźwięki, musiałbyś wykorzystać jakąś bibliotekę do odtwarzania / generowania muzyki (c play tone w Google, tak na początek).

0
Patryk27 napisał(a):

Da się to jakoś zmienić?

\a to tzw. bell character, i jest - z tego co kojarzę - jest raczej statyczny.

Jeśli chcesz uzyskać ciekawsze dźwięki, musiałbyś wykorzystać jakąś bibliotekę do odtwarzania / generowania muzyki (c play tone w Google, tak na początek).

Kiedyś mnie tego nauczysz, teraz tyle mi wystarczy.

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