Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Berkeley Humanoid Lite (Onshape, GitHub) je open source humanoidní robot. V amerických cenách jej lze sestavit do 5000 dolarů.
Jakub Jelínek oznámil vydání verze 15.1 (15.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 15. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Byly vyhlášeny výsledky letošní volby vedoucího projektu Debian (DPL, Wikipedie). Staronovým vedoucím zůstává Andreas Tille.
Jason Citron končí jako CEO Discordu. Od pondělí 28. dubna nastupuje nový CEO Humam Sakhnini, bývalý CSO Activision Blizzard.
fscanf(fr, "%s %s %s %s %s", &retezec1, &retezec2, &retezec3, &retezec4, &retezec5);Můj problém je, že já potřebuju, aby z každého řetězce bylo načteno pouze 5 prvních znaků. Pokud jich je náhodou víc potřebuju, aby byly za pátým znakem useknuty. Definoval jsem si tedy proměné retezec jako pole 5 charů. Žil jsem v domění, že funkce fscanf automaticky řetězec usekne, ale neděje se tak. Pokud je náhodou řetězec delší program spadne. Je to jednoúčelový program a moc programování nerozumím, proto teď nevím moc jak dál. Dá se nějak funkce fscanf nastavit, aby z každého řetězce přečetla pouze prvních pět znaků do první proměné - poté přeskočila na další řetězec a načetla opět prvních 5 znaků do další proměné a tak dále? Předem děkuju za radu.
Řešení dotazu:
#include <stdio.h> #include <string.h> #define STR_MAX 32 #define STR_SIZE 5 #define TO_STR_SIZE "5" #define WORDS_IN_ROW 5 int main(int argc, char *argv[]) { FILE *f; f=fopen("file.txt", "r"); if (f != NULL) { char str[WORDS_IN_ROW][STR_SIZE+1]; int i; for (i=0;i<WORDS_IN_ROW;i++) { fscanf(f, "%" TO_STR_SIZE "s", &str[i]); str[i][STR_SIZE]='\0'; if (i<WORDS_IN_ROW-1) { char c; if ((c=fgetc(f)) != ' ') { char tmp[STR_MAX]; fscanf(f, "%s ", &tmp); } else { ungetc(c, f); } } } for (i=0;i<WORDS_IN_ROW;i++) { printf("%d: %s\n", i, str[i]); } fclose(f); } return 0; }
fscanf(fr,"%5c", &retezec);? NN
char retezec1[MAX_LEN], ..., retezec5[MAX_LEN]; fscanf(fr, "%s %s %s %s %s", retezec1, ..., retezec5); retezec1[5] = ... = retezec5[5] = '\0';C uz jsem dlouho neuzival, ale maji tam skutecne byt ty &?
if (strlen(s) > 5) s[5] = '\0';A nezapomenout pak uvolnit pomocí free().
Tiskni
Sdílej: