-
Fototrend
Új hozzászólás Aktív témák
-
pawee
tag
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//file-változók deklarálás
int main ()
{
//változók deklarálása
FILE *fin;
FILE *fout;
int i,j;
char stri[160];
char stro[160];
char ch;
//file-ok megnyitása
fin = fopen(''be.txt'',''rt'');
fout = fopen(''ki.txt'',''wt'');
//inicializásás
j=0;
i=0;
fscanf(fin,''%s'',stri);
//átalakítások
for (i=0;strlen(stri);)
{
i++;
ch = stri;
//síma ékezetes nagy betűk
if (ch == 'Á')
{
stro[j] = 'A';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'É')
{
stro[j] = 'E';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'Í')
{
stro[j] = 'I';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'Ú')
{
stro[j] = 'U';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'Ó')
{
stro[j] = 'O';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'Ű')
{
stro[j] = 'U';
++j;
stro[j] = '\''';
++j;
}
if (ch == 'Ő')
{
stro[j] = 'O';
++j;
stro[j] = '\''';
++j;
}
if (ch == 'Ö')
{
stro[j] = 'O';
++j;
stro[j] = ':';
++j;
}
if (ch == 'Ü')
{
stro[j] = 'U';
++j;
stro[j] = ':';
++j;
}
//síma ékezetes kis betűk
if (ch == 'á')
{
stro[j] = 'a';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'é')
{
stro[j] = 'e';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'í')
{
stro[j] = 'i';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'ú')
{
stro[j] = 'u';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'ó')
{
stro[j] = 'o';
++j;
stro[j] = '\'';
++j;
}
if (ch == 'ű')
{
stro[j] = 'u';
++j;
stro[j] = '\''';
++j;
}
if (ch == 'ő')
{
stro[j] = 'o';
++j;
stro[j] = '\''';
++j;
}
if (ch == 'ö')
{
stro[j] = 'o';
++j;
stro[j] = ':';
++j;
}
if (ch == 'ü')
{
stro[j] = 'u';
++j;
stro[j] = ':';
++j;
}
// repülő ékezet átírása síma ékezetté, nagybetűk
//repülőékezet átírása síma ékezetté, kisbetűk
}
stro[j+1]='\0';
//az átalakított string kiírása
fprintf(fout,''%s'',stro);
//file-ok lezárása
fclose(fin);
fclose(fout);
return 0;
}
nahh ez a teljes ahogy most állok, de ez se fut rendesen, mert leáll futás közben...de mi-éééért mááár...váááááMinden input az ördögtől érkezik!
-
shev7
veterán
válasz Jester01 #2202 üzenetére
illetve a vegen egyel kesobbi helyre kerul a \0 igy valami szemet odakerul a file vegere, valamint csak az ekezetes karakterek repuloekezetes valtozatai kerulnek be az uj fileba, a nem ekezetes karakterek nem (bar lehet hogy a feladatkiiras szerint nem is kell )
es meg egy javaslat a programozonak. Talan hasznosabb lenne a swich case szerkezet hasznalata...''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
-
amargo
addikt
Widgets-et fejlesztett már valaki?
Mivel osx-el nem rendelkezem, ezért valami más verziót kellene megcéloznom
[link]
The code bases for Konfabulator and Dashboard are also different: whereas Konfabulator uses XML and JavaScript to generate Widgets, Dashboard uses HTML, CSS, JavaScript, and Objective C.
Akkor xml és javascriptel lehet csinálni windows alá is. De ha már találtam pl ezt: [link]
Akkor esély sincs, hogy hazsnálni tudjam, mert ez a Dashboard.
De ugye javaban megvannak csinálva a fő motorikus részek, ezért gondolom valahogy csak átlehet portolni. Vagy merre lehetne elindulni?
Köszönöm előre is!“The workdays are long and the weekend is short? Make a turn! Bike every day, bike to work too!”
-
N0rb!
csendes tag
Csocsesz!
Totál kezdő vagyok C-ben és van egy bazi nagy problémám. Írtam egy programot, ami a lefutása végén kapott szöveges eredményeket egy fájlba menti és ezek a szövegek ékezeteket is tartalmaznak, és ez miatt rosszul jelennek meg.
Biztos forrásból tudom hogy valami 'iso 8859 2' -vel függ össze a dolog, és hogy valahogyan a programomba kellene illeszteni, de nem tudom hogyan.
HELP ME!!!
Ma éjfélig kell leadnom, mert ha nem akkor pék leszek és nem a Microsoft vezérigazgatója.
De ha sikerül gazdag lehetek és az is aki segít, szóval nagyon megéri... Erre gondoljatok -
N0rb!
csendes tag
Hát erről lemaradtatok.. Egyedül leszek gazdag.
-
Salak
tag
Sziasztok,
Lenne egy nagy kérésem/kérdésem. Egyik haverom megkért,hogy segítsek, mert muszáj lenne átmennie info-bol, de nagyon nem ért hozzá.
Az alábbi linken a 6. órához tartozó házifeladat példáit, illetve a 7. órai házifeladatot kell neki leadnia.
[link]
Nagyon hálás lennék, ha egy-két feladatot legalább segítenétek megoldani, tényleg nagyon fontos lenne. Ja és valami ''putty''-al kell megcsinálni (talán shell nyelven, ha van olyan, sajna én sem értek hozzá)
Előre is köszi!"Winners never quit and quitters never win."
-
gabesz82
senior tag
Sziasztok! Egy ''kis'' segítség kellene. Egy programot kellene írnom C/C++ vagy JAVA nyelven. A program osztályozást kell hogy végezzen karaktersorozaton és eldönteni, hogy melyik osztályba tartozik. Van egy tanuló meg egy teszt adatbázist a tanuló adatbázis ilyen formátumú (text file):
>2 (ez azt jelenti, hogy a 2. osztályba tartozik)
SFSDFSDFSFESEFSEFESFSFSFE
>1 (1es osztályba tartozik)
FEWFEBJUKIUFGDSCVECEWCWC
>2
EWRWTGFNBVCWFSDFZTIZUJGNH
és ez alapján kell eldönteni a test adatábizban lévő karaktersorozatokról, hogy milyen osztályba tartoznak. Köszi előre is a segítséget. Ha valaki elvállalná akár anyagi áldozatra is hajlandó vagyokPSN: Morfologus82
-
pawee
tag
köszönöm mindenkinek aki a repülőékezetes progiba segített
10ből 8 ponttal jutalmazta a bíró!!!
big up mindenkinek!!!Minden input az ördögtől érkezik!
-
ALI_G
veterán
Olyan kéne nekem, hogy van egy char tömböm amibe beolvasok számjegyeket aztán átalakítom integerré. A kérdés pedig, hogy hogyan lehet a char tömböt ''kinullázni'', vagy vmi olyan állapotba hozni mint amikor deklarálom?
mod: C++ ról van szó.
[Szerkesztve] -
shev7
veterán
egy forciklussal vegigmesz az elemeken es kinullazod. Egyebkent ezt letrehozaskor is erdemes megtenni, en nem biznam a progimat arra, hogy tutira nulla a tomb tartalma deklaralas utan...
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
shev7
veterán
es amikor deklaralod mi van benne? de egyebkent mindegy, mert ha beolvasol egy ''stringet'' azt egy \0 karakterrel lezarja, amikor intet konvertalsz belole, akkor a \0 utan levo karaktereket nem veszi figylembe.
[Szerkesztve]''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
ALI_G
veterán
igen, de nem tudom hogyan tudnám hasznosítani, mivel char-nak deklarálva a dolog.
bemásolom, így lehet világosabb lesz:
char puffer[5];
int K2, kuka, i=0, j=0, n2=0, csomiszam, K2osszeg=0;
K2=K*2
if (puffer!='' '')
fscanf(be, ''%c'',&puffer);
else MaxTeher = atoi(puffer);
if (puffer!='' '')
fscanf(be, ''%c'',&puffer);
else csomiszam = atoi(puffer);
fscanf(be,''\n'',kuka);
for(i=1; i<=csomiszam; i++){
if(puffer!='' '')
fscanf(be, ''%c'', &puffer);
else {
fscanf(be, '' '',kuka);
s[j]=atoi(puffer);
j++;
}
}
Amint látható a puffer-t kellene kiüríteni, hogy tudjak tovább olvasni a fájlból, amiben számok vannak szóközzel elválasztva, 1-4 jegyűek. A számokat akarom tömbben eltárolni.
Kicsit gány megoldás, de hirtelen ez jutott eszembe ami számomra egyszerűnek tűnt.
C++ ban nincs erre parancs/beépített fv mindg PHP-ban (meg talán JAVA-ban is van)
amúgy az miért van, hogy a kód-ba rakott cuccból is kiveszi a sor eleji szóközöket? Régen nem így volt.
[Szerkesztve] -
Jester01
veterán
A %d az 54-et fogja belerakni, mert whitespace (szóköz, soremelés) határig olvas.
#include <stdio.h>
int main(int argc, char* argv[])
{
int x;
FILE* f = fopen(argv[1], ''r'');
while(fscanf(f, ''%d'', &x) == 1) printf(''%d\n'', x);
fclose(f);
return 0;
}
be.txt:
1.54..2
123.....45
A szókózöket ponttal jelöltem, mert a fórummotor különben kitörli õket.
Futtatás eredménye:
1
54
2
123
45
[Szerkesztve]Jester
-
ALI_G
veterán
válasz Jester01 #2227 üzenetére
Igen?! C++ ban simán megcsinálja nekem? Ez jó Nem kell itt bénázzak. És ilyenek miért nincsennek beleírva a könyvbe is?!
és a fsanf(be,'' '',x); az nem kihagyja a szóközt? Az x csak azért van ott mert asszem az fscanf-nek 3 paraméter kell. vagy van 2 paraméteresben is? Bár annak nem sok értelme lenne. -
Jester01
veterán
Igen, ha a 3. sorba is %d-t írsz, és a ciklusba nem <= összehasonlítás kell, mert úgy eggyel többet fog olvasni mint amennyi van.
MOD #2228-ra: ez C kód, nem C++. Biztos le van írva a könyvben is hogy mûködik a scanf. A szóközt nem kell explicit kihagyni mert a scanf átlépi magától. Ha pontosan egy karaktert akarsz beolvasni akkor egyébként az fgetc függvény a barátod.
[Szerkesztve]Jester
-
Jester01
veterán
Akkor a szóköz nem is kell ide: fscanf...''%d %d''...?
Nem, de így olvashatóbb. Egyébként nyugodtan próbáld ám ki magadtól.
Ez itt miben különbözne C++ ban ha ez nem az?
Bár a C++ kompatibilis a C-vel de C++-ban igazából streameket illik használni, valahogy így:
ifstream f(''be.txt'');
f >> MaxTeher;
f >> csomiszam;
for (i=0;i<csomiszam;i++) f >> s[ i ];Jester
-
focker
csendes tag
Lenne egy olyan kérdésem, hogy van egy ilyen tartalmú textfile:
>2
MYEEEIKKIALLNAYQHNGKAE
>1
MEVERIALKYALINAIEHGG
>1
MLRETIYKYALQNA
>2
MIKTRFAPSPTGYLHVGG
Erre kellene egy olyan java kód, ami megszámolja, hogy az 1-es és 2-es sorozatban melyik beűből hány van (az 1-es és 2-es sorozatokból tetszőleges mennyiségű lehet). Tehát pl. 1-es: A-5 B-0 C-0..., ugyanígy a 2-esre A-4...
Addig ok, hogy
BufferedReader br = new BufferedReader(new FileReader(''file''));
és mondjuk egy
public static void betuszamlalo(int[] betu,char C) {
switch (C) {
case (char)'A': betu[0]++; break;
....
}
amit meghívunk, amikor a karakterekhez érünk a beolvasáskor.
Karakterenként olvasom be a file tartalmát, tehát először '>', aztán a szám, hogy hanyas sorozathoz tartozik, és ahhoz a sorozathoz elkezdi számolni a cuccot, aztán jön a következő sorozat, ami ha ugyanolyan sorszámú, akkor az eddigiekhez adódik hozzá a számlálás, ha pedig másik sorszámú, akkor ahhoz.
Tudom kicsit kacifántos a negfogalmazás, de már eléggé fáradt vok -
shev7
veterán
nem kerdeztel semmit, de en azert valaszolok. A hosszu switch-case helyett indexelhetned magaval a karakterrel a tombot. (hasonlo kerdes volt mar a topicban nemreg) Szoval ha az 'A'-k kerulnek a tomb nulladik elemebe, es a c-valtozoba olvasod be a kovetkezo karaktert, akkor indexeld igy a tombot, : betu[c-'A'++; Ez jelentosen leroviditi a kodot.
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
focker
csendes tag
Na igen, kissé kacifántos voltam. Láttam a hasonló kérdést, a feladat ugyanaz egyébként, csak választ nem kapott az illető. Nekem csak annyi kellene, hogy a fájlból beolvassa az összes ilyen
>2
ABCGDJGIT...
szekvenciát, és megszámolja, hogy az 1-es és 2-es külön-külön hány darab A betűt, hány darab B betűt..., tartalmaz. Tehát mondjuk egy szekvencia1[] tömbbe tároljuk 0-25 indexig, hogy az egyes betűkből mennyi fordul elő az összes 1-es szekvenciában (ugyanígy szekvencia2[]). Utána ezekkel a tömbökkel kellene dolgozni, ami már menne, csak a beolvasás nem Az a baj,h már csak konkrét kód tud rajtam segíteni, mert szorít az idő. -
focker
csendes tag
válasz gabesz82 #2237 üzenetére
Hát igen, én mindig megszívom az ilyeneket
while (true){
c=br.read();
if (c==-1) break;
//1-es osztályláncok feldolgozása
if (c==(char)'1'){
int n=0;
n1++;
while (true){
c=br.read();
if (c==-1||c==(char)'>') break;
if (c==13||c==10) continue;
betuszamlalo(bszam,(char)c);
}
bszam=new int[26];
}
//2-es osztályláncok feldolgozása
...
}
Ezt hogy lehetne máshogy megcsinálni, hogy egyáltalán ne hasonlítson erre, és mégis ugyanezt csinálja? -
shev7
veterán
FileInputStream fin;
int hova=0;
int betuk[][];
betuk=new int[2][25];
try {
fin = new FileInputStream(''inputfile.txt'');
DataInputStream in = new DataInputStream(fin);
while (in.available() !=0) {
String input = in.readLine();
if (input.equals('''')) continue;
else if (input.equals(''>1'')) hova=0;
else if (input.equals(''>2'')) hova=1;
else {
for (int i=0;i<input.length();i++)
betuk[hova][input.charAt(i)-'A']++;
}
}
fin.close();
}
// Catches any error conditions
catch (IOException e) {
System.err.println(''Unable to read from file'');
System.exit(-1);
}
ha nem baj az, hogy a readLine deprecated''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
focker
csendes tag
Most már csak egy a gond, ugyanezt megcsinálom egy tesztre is, így
while (in.available() !=0) {
String input = in.readLine();
if (input.equals('''')) continue;
else if (input.equals(''>'')){
teszt=0;
darab++;
}
else {
for (int i=0;i<input.length();i++)
betukteszt[teszt][input.charAt(i)-'A'++;
}
for(int i=0; i<26; i++){
atlagteszt=betuk[0]/darab;
}
for (int i=0;i<26;i++){
if (atlagteszt==0) continue;
if (atlag1!=0)
T1db_1*=(atlag1<atlagteszt)?atlag1/atlagteszt:atlagteszt/atlag1;
if (atlag2!=0)
T2db_1*=(atlag2<atlagteszt)?atlag2/atlagteszt:atlagteszt/atlag2;
}
atlagteszt = new int[26];
Eredmeny.write((T1db_1>T2db_1)?''1'':''2'');
Eredmeny.newLine();
Eredmeny.flush();
és az Eredmeny file-ba kb. 7x annyi 1-es vagy 2-es kerül. Miért szalad ennyivel túl? -
shev7
veterán
igazandibol, ha bekattintttad volna, hogy ne konvertaljon, akkor olvashatobb lenne kuldd el a forrast, meg a bemeneti file-t es megnezem, de sztem valamit nagyon nem jol csinalsz
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
ALI_G
veterán
public static void main(String[] args) {
int[] s={3,12,45};
int tomb[] = new int[3];
for(int j=0;j<tomb.length;j++)
tomb[j]=0;
int k=100;
while(tomb[0]==0){
tomb = Valto(k,s);
k--;
}
for(int i=0;i<2;i++)
System.out.print(tomb);
}
Java. Miért száll el null pointer-rel a while?
A Valto az jó, (60,s)-re 210-t ad vissza.
[Szerkesztve] -
passenger
csendes tag
hello
nem tudna vki mondani egy algoritmust a kovetkezore:
egy nxn-es negyzet bejarasa az atlokon,a jobb felso saroktol.csak a foatloig kell.
tehat n=4 eseten: (1,4); (1,3) (2,4); (1,2) (2,3) (3,4).
kosz -
MODERÁTOR
sziasztok! segítség kéne! bevallom házihoz kell de már sokmindent megpróbáltam és lövésem sincsen. szóval az a feladat, hogy egy szöveget beolvasok a getline(); -nal egy stringbe majd az első szavát kicserélem egy másik szintén beolvasott szövegre. arra rájöttem, hogy az elsö space -t ' ' kell keresni de hogy? aztán meg hogy kell visszadni a maradékot? ez a kérdésem! köszönöm!
u.i.: erre több házi is épül szoval ha segitetek egybe a többit már megcsinálom! köszönöm!"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- APPLE MacBook Air 2020 13" Retina - M1 / 8GB / 256 GB SSD / MAGYAR / 96% akku, 81 ciklus / Garancia
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!