Új hozzászólás Aktív témák
-
Retekegér
MODERÁTOR
válasz
Korcsii #3368 üzenetére
Bemásolom az egészet:
#include <stdio.h>
#include <conio.h>
int main ()
{
char c;
int tomb[10], i;
printf("Fajl vege jelig (Ctrl+Z) szabvanyos bementrol olvasva\n");
printf("megszamoljuk, hogy hany szamjegy van a szovegben.\n\n");
for (i=0; i<10; i++)
tomb[i]=0;
while (scanf("%c",&c)==1)
if (c>='0' && c<='9')
tomb[i-'0']++;
for (i=0; i<10; i++)
printf("%d: %d\n",i,tomb[i]);
getch();
return 0;
} -
Retekegér
MODERÁTOR
válasz
Korcsii #3366 üzenetére
Igen, ^Z lesz a konzolon. Ütök utána Entert is, de harmadjára műkszik kb. Illusztráció.
-
Sk8erPeter
nagyúr
válasz
Korcsii #3244 üzenetére
Ne oltogassátok má' szegény csávót, elveszitek a maradék kedvét is.
Szerintem egyébként ebben az esetben ez az általad alkalmazott conditional operator talán logikusabb is, mint egy szétbontott if-else. Persze tényleg ekvivalens mindkettő, csak ilyen esetekre szerintem tipikusan jól alkalmazható, amit mutattál.
-
Jester01
veterán
válasz
Korcsii #3066 üzenetére
Ez egy nagyon trükkös optimalizálás.
-
artiny
őstag
válasz
Korcsii #3050 üzenetére
(s)sanf itt a fscanf re gondoltal? mert a sanf t nem ismerem es nem adott semmit a google.
Valmi ilyesmit probaltam. Harom szamot beolvasni egy txt bol es azt osszeadni es kiiratni.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
int i;
int d;
FILE * f;
f = fopen("szam.txt","r");
while (( i= getc(f)) != EOF ){
fscanf(f,"%d",&i);
}
fclose(f);
printf("%d",d);
return 0;
} -
chabeee
aktív tag
válasz
Korcsii #2756 üzenetére
igen ez utólagos próbálkozás volt, és ez kimaradt, de közben én is észre vettem, de még sajnos mindig kifagy.
@jester
másolási hiba,amugy nekem a fordító nem ir ki semmilyen fajta segítséget, lehet a mingw helyett vmit mást kéne feldobni ha egyáltalán ez okozza ezt a hibát -
Jester01
veterán
válasz
Korcsii #2664 üzenetére
c++ rulz, ott csak >> operátor van, semmi más függvény
Azért ezt ne hangoztasd kezdők előtt mert még elhiszik. Példának okáért van std::basic_istream::get() 6 verzióban és még kb ezermillió másik függvény.
Az operator>> különben sem mindenható:
#include <iostream>
#include <string>
using namespace std;
int main(int, char**)
{
string name;
cin >> name;
cout << name << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
JohnItt például jól jön a get():
#include <iostream>
#include <sstream>
using namespace std;
int main(int, char**)
{
stringbuf name;
cin.get(name);
cout << name.str() << endl;
return 0;
}
$ g++ -Wall test.cpp
$ echo "John Doe" | ./a.out
John Doe -
Gyuri16
senior tag
válasz
Korcsii #2380 üzenetére
egesz sor beolvasasara ott van a getline fuggveny, nem jo scanf-fel bohockodni
ez megbirkozik a bemenettel akkor is ha nem tudod elore mekkora lesz.
a str fuggvenyekbol pedig jobb azokat hasznalni ahol a nagysagot is meglehet adni, strcat helyett strncat plszerintem a legjobb megoldas altalanos beolvasasra az, hogy getline-al beolvasol egy egesz sort es aztan szetszeded komponensekre az adott feladat szerint
-
kingabo
őstag
válasz
Korcsii #2375 üzenetére
Ok, igazad van.
A szemem az értékadáson akadt meg illetve ezen a mondaton: "csak viszont igy a tomb2 memoriacime mindig felulirodik es az utolso elem tartalma lesz mindig benne" Erre megoldás az strcpy, azt viszont tényleg nem vettem észre, hogy nincs hely foglalva a paramétereknek. -
kingabo
őstag
válasz
Korcsii #2370 üzenetére
"kingabo: strcpy jó, csak épp semmi nem létezik, amit neki adni kéne..."
Hogy hogy nem létezik?Tehát amit beolvas a file-ból az semmi?
(#2372) gergo00: maga a string is egy tömb. Vagyis a 3. dim a beolvasott szövegeket fogja tárolni.
(#2371) gergo00: miért foglalsz le 255 oszlopú tömböt, ha a ciklus végén 6 oszlop után új sort kezdesz?
-
gergo00
csendes tag
válasz
Korcsii #2368 üzenetére
Mondjuk ha igy probálom akkor nem fut le a program, mondjuk 3dtombbel se.
int main()
{
char *tomb[255][255],sor=0,oszlop=0;FILE *fp;
fp=fopen("c:\\all.txt","rw");while(!feof(fp))
{
fscanf(fp,"%s",tomb[sor][oszlop]);
oszlop++;
if(oszlop>6)
{
sor++;
oszlop=0;
}
}system("pause");
}
5let? -
Korcsii
őstag
-
gergo00
csendes tag
válasz
Korcsii #2366 üzenetére
Akkor beszéljunk programnyelven
Mutatnal egy rovid peldat a haromdimenzios tombbel.
Mondjuk én a dinamikussal probalkoztam csak azzal az volt a baj hogy:char *tomb[25][25],*tomb2,
while(!feof(fp))
{
fscanf(fp,%s,tomb2)
tomb[sor][oszlop]=tomb2
}
csak viszont igy a tomb2 memoriacime mindig felulirodik es az utolso elem tartalma lesz mindig benne -
kingabo
őstag
válasz
Korcsii #2301 üzenetére
"i, i-1 és/vagy i+1 is létezzen"
Jobban mondva ezek az indexek is a tömbön belül legyenek: legalább 0 és legfeljebb n-1, ha n elemű a tömb."különben szépen elszáll a program..."
Miért szállna el? Nagy valószínűséggel csak memória szemetet hasonlítgatna, ha dinamikusan lett lefoglalva a tömb, ha nem akkor a veremben elötte/utána lévő dolgokat. A c, c++ nem figyeli, hogy tömbön belül indexeltél-e. (pl a pascal-lal/ada-val ellentétben) Esetleg, ha nagyon rossz helyre menne, az oprendszer nem hagyja. c++-ban acces vialation kivételt dob ha jól rémlik, c alatt passz -
Karma
félisten
válasz
Korcsii #1918 üzenetére
McDonaldsos konyhas inkabb...
Mondjuk vannak olyan szakok, ahol teljesen feleslegesen is beraknak programozast, nem tudom milyen motivaciobol. Pl. a Godolloi Egyetem kornyezetmernoki szakan vegzett ismerosomnek Visual Basicet kellett volna programoznia. Termeszetesen tanitani ott se tanitottak, az eloado peldakodjai is hackeltek es rondak voltak, de eleg korrepetalas utan sikerult atmennie.
-
Sk8erPeter
nagyúr
-
bpx
őstag
válasz
Korcsii #1795 üzenetére
hát pl. az előbb linkelt megoldással qsort-tal és saját összehasonlító függvénnyel lehet rendezni, egy függvénypointer-tömbben (de szép szó
) eltárolod ezeket a fv-eket, és akkor elég a 'mit' változóval ezt a tömböt paraméterezni egy qsort hívásban
persze ha van összesen 2 fv-ed, akkor nem biztos hogy ennyire bonyolítani kell, és simán elég az amit te írtál -
Gyuri16
senior tag
válasz
Korcsii #1795 üzenetére
ezt pont igy meg lehet irni, olvasd el megegyszer shev7 es doc hszait.
a qsortnak adhatsz egy fuggvenyt, ami eldonti miszerint lesz rendezve. megirod ezt a ket fuggvenyt (varos es termek szerint), es beirod az ifedbe a megfelelo parameterekkel a qsortot
itt egy pelda: [link]
-
shev7
veterán
válasz
Korcsii #1793 üzenetére
"függvény talán azért lenne szerencsésebb, mert 3x kell használni, és így elég lenne egyszer megírni... de igazán semmi ötletem nincs erre, max az, hogy egy sima váltózóból kap egy értéket, és azt megvizsgálva a megfelelőt pörgeti végig... na de ez lehet még hosszabb/rosszabb, mint ha mindenhova odaírnám..."
Ezt csak en nem ertem mit akar jelenteni?
-
doc
nagyúr
válasz
Korcsii #1789 üzenetére
az stdlib.h-ban definialt qsort lesz a baratod, kell irnod egy fuggvenyt ami eldonti ket structurarol hogy melyik a nagyobb (ez nem lehet gond), aztan csak siman raengedni a tombre, es voila, kesz is
ha csinalsz ket kulon fv-t, egyet a varos, egyet a termek alapjan torteno osszehasonlitasra, akkor meg mar teljesen kesz a feladatMOD: shev7 megelozott
-
Karma
félisten
válasz
Korcsii #1789 üzenetére
Nezd meg az strcmp fuggvenyt, azzal lehet peldaul ket karakterlancot ABC szerint osszehasonlitani.
Az mar egy kicsit nagyobb magia, hogy olyan fuggvenyt irj, ami a struktura tetszoleges tagvaltozoja szerint kepes rendezni. C++-ban tudom hogy van erre megfelelo pointertipus, sima C-ben nem tudom.
-
Karma
félisten
válasz
Korcsii #1739 üzenetére
A Borland és a Turbo is két antik retek, amit csak azért nyomnak az iskolákban, mert a tanárok lusták művelni magukat. Ahogy az előbb is említettem, csak DOS-ban működő móka mind a kettő.
A Dev-C++ teljesen korrekt választás, bár én annyira nem szeretem azt az IDE-t. Anno Code:
locks-ot használtam első félévben, azóta meg XCode-ot.
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Elektromos cigaretta 🔞
- HP notebook topic
- Filmvilág
- Bluetooth hangszórók
- Bemutatkozott a Poco X7 és X7 Pro
- Fejhallgató erősítő és DAC topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Elemlámpa, zseblámpa
- Autós topik látogatók beszélgetős, offolós topikja
- Tőzsde és gazdaság
- További aktív témák...
- Bomba ár! Dell Latitude E5570 - i5-6300U I 8GB I 256GB SSD I 15,6" FHD I HDMI I CAM I W10 I Gari!
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- LG 39GS95UE - 39" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- BESZÁMÍTÁS! Gigabyte B450M R7 2700X 16GB DDR4 512GB SSD RX VEGA64 8GB CM 690 III FSP 600W
- PS5 konzolod megvásároljuk: Budapest, Kecskemét, Szeged, Debrecen vagy akár GLS futárt küldünk!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest