#naukaprogramowania #ansic #cpp #linux
mam program w C który wypisuje mi coś na terminal linuxa.
Chciałem żeby z każdym wywołaniem programu mi czyściło ekran.
Problem w tym, że:
printf("/033[2J"); (lub to samo z coutem)
czysci ekran, ale wszystko się wypisuje na dole ekranu, a ja chcę na górze. Jak to osiągnąć?
  • 10
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@RedveKoronny: nie baw się w printfowanie ani tym bardziej w system(), tylko zamiast wykonywać program wykonuj skrypt shella który normalnie jak człowiek wyczyści ci terminal i odpali oryginalny program.
  • Odpowiedz
Byłabym bardzo wdzięczna, gdyby ktoś mi zerknął na kod i pomógłby mi z funkcją write(), która teoretycznie powinna utworzyć kopię pliku (z tekstem), a nie tylko nowy plik. Niestety mogę tylko użyć write i read do wczytywania, przez co zadanie robi się problematyczne.
Link do pastebin: https://pastebin.com/JMzAhu4b

#jezykc #informatyka #ansic
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@Iribell:
linia 63. tworzysz file descriptor (in), ale nie używasz go do niczego, prawdopodobnie chciałaś użyć któregoś z tablicy fd.
linia 65. nie sprawdzasz pliku, tylko porównujesz wartość stringa z jego nazwą do nulla, to zawsze będzie prawdziwe (coś jak 17 != 15), powinnaś sprawdzić czy fd jest poprawny (fd zwraca funkcja open)
linia 93. zapisujesz coś do przypadkowego fd (argument 1), nawet nie masz nic otwartego.
linia 99. to nie da żadnego efektu, a już na pewno nie zwiększy rozmiaru pliku (jeśli taki był w ogóle zamiar)
Jest bałagan z otwieraniem i zapisywaniem plików. Na początku obu funkcji zamykasz nieotwarte fd, zapisujesz i czytasz też na nieotwartych fd, zamykasz też nie to
  • Odpowiedz
@elfo: Wiedziałam, że moje zadanie to bałagan, ale nie sądziłam, że aż taki. Chyba lepiej je będzie zrobić od początku. W każdym razie dzięki.
  • Odpowiedz
Hej tag #programowanie.
Mam do napisania program (najlepiej w C), który przy pomocy listy wskaźnikowej (na dane typu double) rozrasta się do pewnej, zadanej wielkości, np podajemy rozmiar w konsoli.
Możecie mi podpowiedzieć jak się do tego zabrać? Narazie mam tyle:

struct Node {
double
  • 7
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

cos takiego

int size_to_extend;
scanf_s("%d", &size_to_extend);

int n = size_to_extend / sizeof(struct(Node));
  • Odpowiedz
Chciałbym zliczyć w języku C ilość bitów wysokich występujących w liczbie dziesiętnej
Przykład

Input: 2137 (dec) to 1000 0101 1001 (bin)
Output: 5

Ktoś
  • 9
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Mirki od #jezykc #ansic - dlaczego tutaj jest podwójna negacja, zwłaszcza biorąc pod uwagę, że typ to unsigned int?

static bool fwnet_hwaddr_is_multicast(u8 *ha)
{
return !!(*ha & 1);
}
  • 2
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Pytanko co do kodu: https://pastebin.com/vZt7LHRZ

Czy drugie for zaczyna się wykonywać kiedy pierwszy for będzie fałszywe?
+ co dokładnie robi drugie for? Czemu inicjacja zmiennej to j=n-1? I po co tam ten if w forze?
Czy klamry tutaj mają większe znaczenie, tj. czy jakby ich nie było to czy kod pokazywałby to samo?

#ansic #cpp #naukaprogramowania
l.....a - Pytanko co do kodu: https://pastebin.com/vZt7LHRZ

Czy drugie for zaczyna...

źródło: comment_dTAhAl4xXCUj9kdIT0xG08FFREbQDviS.jpg

Pobierz
  • 19
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@pojler98: lepiej będzie, jeśli zwrócisz zmergowaną listę. w ten sposób dla 2 i 3 przypadku poprostu zwracasz odpowiednią listę. Btw. co robi metoda Wyzeruj? W mergowaniu list taka operacja nie ma sensu.
  • Odpowiedz
Próbuję napisać banalny program podający średnią z wczytanych do tablicy liczb. Wychodzi tak, że program prosi mnie o podanie 6 liczb zamiast 5 jak chciałem. Ogólnie działa, ale niepotrzebnie każe podać 6 liczbę. Jak to usunąć?

#include
int main()
{
int tab[5];
  • 5
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

#naukaprogramowania #ansic

Mirki, czy switch w switchu (a potem ewentualnie jeszcze w tym drugim 3 switch) w C jest poprawny? Tzn. błędu chyba nie powinien wywalić, ale czy jest jakiś bardziej efektywny sposób zagnieżdżenia w sobie wielu warunków?
  • 3
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@wytrzzeszcz Program do szkoły tworzący menu, a po wybraniu jednej z opcji otwiera się "podmenu", z którego mogę np. wpisać coś do pliku-bazy danych, wyświetlić bazę danych, posortować ją. W przypadku wyboru opcji "sortuj" przechodzimy do kolejnego "podmenu", gdzie wybieramy ze względu na co chcemy to posortować, a następnie wyświetlić i tak dalej. Myślałem, żeby to właśnie jakoś switchami zrobić, ale dopiero zacząłem nad tym myśleć
  • Odpowiedz
Jest jakaś opcja do printf'a, żeby ignorować białe znaki.
W sensie, np. mam \t \n w napisie i nie chce zeby wyswietlilo tabulacje i nowa linie, tylko te symbole \t \n
#informatyka #ansic #c
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@ronek22:

1. zrób sobie funkcje, lecisz po tym napisie i przepisujesz go do nowej tablicy znak po znaku, jak jest znak \t \n \r to dodajesz jeszcze jeden \. Problem, że nie wiesz jak ma być duża tablica wynikowa. Może być sporo nadmiarowa. Najłatwiejszy sposób.

2. Trudniejszy trochę ale wykorzystujesz pamięć tylko tyle ile potrzeba. Lecisz po napisie i sprawdzasz ile jest znaków \t \n \r, robisz malloca o wielkości
  • Odpowiedz