Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.
V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.
MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.
Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.
Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.
Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).
Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.
Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.
Bylo vydáno Eclipse IDE 2026-03 aneb Eclipse 4.39. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
#include <stdio.h>
int main(int argc, char **argv) {
char znaky[20];
int a, b;
scanf("%d", &a);
fgets(znaky, 20, stdin);
printf("%s", znaky);
scanf("%d", &b);
return 0;
}
Prekladal jsem to v Linuxu, problem je v tom, ze mi to po spusteni dovoli nacist pouze a, b. Proste mi to preskoci to fgets() a retezec si nemuzu nacist. Kdyz odmazu ty dva scanf() tak program funguje dle ocekavani - nacte z stdin retezec a opise jej na obrazovku, ale kdyz tam jsou ta dve volani scanf(), tak fgets() jako by to ani nevolalo.. Nevite, prosim, v cem je problem?
Diky
Problém je v tom, že fgets() načte ten ENTER, co pravděpodobně zadáváš za tím prvním číslem(a) a do proměnné znaky se tak načte prázdný řetězec (viz man fgets)
scanf("%d", &a);skus
scanf("%d\n", &a);
scanf("%d", &cislo);
printf("pomoci fgets() ulozime %d znaku: ", cislo);
fgets(pch, cislo, stdin);
se normálně zapíše integer do "cislo", po odentrování se zapíše řetezec do stdin, my vypíšeme hlášku, a teď na nic nečekáme, jen vybereme data z toho už zapsaného stdinu.
Jediné řešení co mě napadlo, je připsat ještě jeden fgets, který by sežral ten enter a další by to už zpracovat dle očekávání. Tohle mi ale rozhodně nepřijde elegantní.
Momentálně kompiluji pomocí lcc na Win platformě.
To je myslim normalni chovani, treba v C++ cin.get() taky nechava znak noveho radku ve vstupni fronte. Tohle pripsani jeste jednoho volani dotycne metody je zcela v poradku a ciste, jinak to resit nejde (opominu-li pouziti nejakeho jineho zpusobu nacitani, jako je napr. v C++ cin.getline)
To same plati i pro jejich obdoby pro praci se soubory.
scanf("%s", ...)?
fgets(pCh, 2, stdin) načte ze stdinu řetezec o délce 2, tj. 1 znak, druhý je \0. Enter vytvoří \n, načítá se do prvního výskytu \n (musí se dát pozor,kdy zbyde odminule), podle očekávání bude poslední znak řetezce (vždy?) "\n" (ASCII=10);
scanf("%15d", pCh2) načte ze stdinu všechno, co tam je, až po zmáčknutí Enteru. Trimne zleva případné zbytečné "\n", resp. všechny bílé znaky. V ukazateli na char dva bude první slovo (případně s maximálním počtem 15 znaků). Ale na rozdíl od fgets nechá v stdinu "\n";
Tenhle příspěvek píšu už asi hodinu, postupně se tento dotaz vyvíjel za neustálého zkoušení od hloupého ke shrnutí, na co jsem přišel. Prosím vás, zkontrolujte mi to ať v tom mám jasno.
2. Existuje nějaká funkce, která by umožnila načíst jeden nebo určený počet znaků bez odEnterování?
Omlouvám se, že trošku spamuji tento dotaz, ale zdá se mi, že se to k načítání znaků docela hodí a navíc jsou v tomhle fóru profíci
A jak byste si konkrétně představoval takový seek na terminálu? Co by třeba podle vás měla provést třeba volání
lseek(fd, 0, SEEK_SET); lseek(fd, 0, SEEK_END);
Mne nic rozumného nenapadá.
lseek, ale představuji si, že při použití fseek(stdin, 0, SEEK_END) bych nemusel ošetřovat znaky, které tam zůstanou po scanfu a věděl bych, že fgets mi vrátí opravdu přesně to co chci po uživatelské vstupu.
Moc děkuji všem za odpovědi
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int pocet_znaku=15;
char *pch;
printf("zadej pocet znaku: ");
scanf("%d", &pocet_znaku);
/*nejdriv se optame kolik bude chtit znaku*/
fseek(stdin, 0, SEEK_END);
/*vyžrání nejen odentrování ----- mě to funguje :-S*/
//char pchHack[2]; //nesmí být jedna - fgets zapisuje do řetezce->na konci \0
//fgets(pchHack, 2, stdin);
//printf("\n-> zbytek ve stdin: %d, %d <<-\n", pchHack[0], pchHack[1]);
/*vyžrání odentrování - na win platformách --- podle diskuse ABC*/
pch = (char *)malloc(pocet_znaku+1);
/*v pch máme zalokovaných tolik bajtů, kolik uživatel chtěl
+ jeden navíc pro ukončovací znak*/
printf("\npomoci fgets() ulozime %d znaku: ", pocet_znaku);
fgets(pch, pocet_znaku+1, stdin);
/*pocet_znaku-1 kvuli nule ukončující řetezec*/
printf("\n\nZadal jsi: %s", pch);
return 0;
}
fseek(stdin, 0, SEEK_END) opravdu funguje výborně, když ho zavolám po scanfu, tak si vůbec nemusím lámat hlavu s tím co tam zůstalo. Jupí!
(Není to nějak nečisté? Céčko píšu pár týdnu a někdo výše totiž psal, že čisté i elegantní - přestože možná ne uplně funkční - je to právě přes další fgets)
ad 2) tak tohle mi nějak nefunguje - fgets() se musí po zapsání Enterovat a ungetc() podle všeho nečte, ale naopak zapisuje písmenko do bufferu.
Ještě jednou tedy: rád bych funkci, která mi načte, asi rovnou z klávesnice jeden znak, bez následného zmáčknutí Enter. Přes stdin to zřejmě nelze (viz výše).
Pokud si nevystačíš se standardními funkcemi, podívej se na knihovnu ncurses.
rád bych funkci, která mi načte, asi rovnou z klávesnice jeden znak, bez následného zmáčknutí Enter. Přes stdin to zřejmě nelze
Pomocí select() lze dosáhnout elegantnější cestou téměř téhož (pokud jde o onu smyčku s čekáním a read).
Přečti si to celý a pořádně. Požadovaného efektu pomocí select() opravdu dosáhnout nelze. (Pokuď si teda pod slovem "skoro" nepředstavuješ vynechání nejpodstatnější části požadavku...)
A na hraní si s terminálem je výhodnější využít ncurses, kde přepnutí na nebufferovaný vstup je otázkou zavolání jedné nebo dvou funkcí a přitom ncurses i select je prakticky všude
Jenom kvůli tomuhle do systému zatahovat závislost na ncurses mi přijde dost zbytečný a s tím, že jsou prakticky všude bych si taky dovolil polemizovat...
To jsem reagoval na ten cyklus ukázaný za odkazem, kde byl sleep, kontrola, zda data z stdin přišla a inkrement proměnné. Protože se to opravdu nastavení terminálu netýká a samo o sobě by to nebylo moc užitečné, napsal jsem i druhý odstavecPomocí select() lze dosáhnout elegantnější cestou téměř téhož (pokud jde o onu smyčku s čekáním a read).Přečti si to celý a pořádně. Požadovaného efektu pomocí
select()opravdu dosáhnout nelze. (Pokuď si teda pod slovem "skoro" nepředstavuješ vynechání nejpodstatnější části požadavku...)
Tiskni
Sdílej: