-
IT café
Új hozzászólás Aktív témák
-
Coyot
őstag
Sziasztok! kellene egy kis help, microsoft visual c++ ba, simán C nyelven kellene alkotnom vmit.
mért nem tudom definiálni az adott structurát, folyamatosan errort talál mindenben a fodító.
A program:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#define MAX 30;
struct adatok{
char nev[MAX+1];
long int elofiz;
float resz; };
int getline(char s[],int lim)
{
int c,i;
for(i=0;i<lim&&(c=getchar())!=EOF&&c!='\n';++i)s=c;
s='\0';
while(c!=EOF&&c!='\n')c=getchar();
return(i);
}
void main(int argc,char *argv[])
{
struct adatok egy;
char sor[MAX];
printf(''%s \n''
''program bekéri a telefontársaságok neveit\n''
''és az előfizetők számát, majd megállapítja\n''
''hogy mekkora a piaci részesedésük.\n'', argv[0]);
}
A hibák:
C:\C\itthon2\vizsga2.c(10) : error C2143: syntax error : missing ']' before ';'
C:\C\itthon2\vizsga2.c(10) : error C2059: syntax error : '+'
C:\C\itthon2\vizsga2.c(12) : error C2059: syntax error : '}'
C:\C\itthon2\vizsga2.c(29) : error C2079: 'egy' uses undefined struct 'adatok'
C:\C\itthon2\vizsga2.c(30) : error C2143: syntax error : missing ']' before ';'
C:\C\itthon2\vizsga2.c(30) : error C2143: syntax error : missing ';' before ']'
Error executing cl.exe.
[Szerkesztve]
[Szerkesztve]Má' nem
-
VNari
csendes tag
Sziasztok!
A következő problémára hosszas kutakodás után sem találtam megoldást. Létrehoztam egy makrót (VisualBasic editorral) melyet fájlba mentettem (Akarmi.bas). A C++ kódomban (Borland C++ Builder 5.0) futásidőben hozok létre excel fájlokat, melyekhez hozzá szeretném adni a makrómat.
Excel.ExcelApp = CreateOleObject(''Excel.Application''); //Excel inditása
Excel.ExcelApp.OlePropertySet(''Visible'', Megjelenik); //Látható-e az excel
Excel.WBook = Excel.ExcelApp.OlePropertyGet(''Workbooks'').OleFunction(''Add'', 1);
Excel.Sheet = Excel.ExcelApp.OlePropertyGet(''Worksheets'').OleFunction(''Add''); //Sheet hozzáadása
Excel.Sheet.OleProcedure(''Activate''); //Sheet aktiválása
Miután jól teleírtam adatokkal, valami AddFromFile-os (ez se biztos) ole hívással hozzá kéne adnom a makrót a fájlhoz. Tehát nem futtatni, csak hozzáadni.
Ha valakinek már megvolt ez a probléma megoldásostul, kérem ossza meg velem is.
Segítségeteket előre is köszönöm. -
paramparya
őstag
Vadiúj Java alapú webszolgáltatások című könyv eladó:
[link] -
Muton
addikt
Hello!
C++-ban ha tudna vki segíteni, annak örülnék. a scope operátorral van bajom (most )
feladat: Szmítógép osztály, processzortípus (Ptip) és tárkapacitás (tarkap) adattagokkal.
megadási és lekérdezési fvényeket kell megadni: Ptip-nal scope-operátorral, tarkap-nál inline formában. eddig erre jutottam:
#include...
class Szamitogep
{
Pivate:
char Ptip[25];
inttarkap;
Public:
void BEPtip(char*x){strcpy(Ptip,x);}
char* KIPtip(void);
void BEtarkp(intx){tarkap=x);}
int KItarkap(void){return(tarkap);}
remélem eddig jó. ha jól tévedek, akkor a scope lekérdezéshez vmi ilyet kellene használni:
char*Szamitogep::KIPtip(void){return(PTip);}
}
kérdés: jó így a scope-os lekérdezés? hová kell rakni? a Private-ba? nem kell hozzá vmi fejléc vagy mi?
előre is thxMuton#2316 - $z@r a drop >_<
-
Muton
addikt
válasz emitter #1757 üzenetére
köszi
hát a 'lekérdezés' a char*Szamitogep::KIPtip(void){return(PTip);} akart lenni. a feladat pontos szövege: '' ... adja meg a processzortipus (PTip) adattag megadására és lekérdezésére alkalmas tagfüggvényeket úgy, hogy a lekérdező tagfüggvény definiálásánál a scope (: operátorra is szükség legyen...''
a megadási pedig a 'char* KIPtip(void);'Muton#2316 - $z@r a drop >_<
-
emitter
őstag
-
Bazsesz
őstag
Hi all!
Kéne egy kis C segítség.
Feladat:
Írjon saját függvényt, ami N darab tömbben tárolt szám számtani átlagát kiszámolja.
#include <stdio.h>
int atlag(int p[20], int d) {
int osszeg=0,q,eredmeny;
while (q=1,q!=d,q++) {
osszeg=osszeg + p[q];
}
eredmeny=osszeg/q;
return eredmeny;
}
main() {
int a[20],f;
f=4;
a[1]=1;
a[2]=2;
a[3]=4;
a[4]=23;
printf(''atlag: %d'',atlag(a,f));
}
Eddig jutottam, de sztem nem adja át a tömböt a függvénynek, és mikor elindítom, akkor semmi programvége, és semmi eredmény... Próbáltam már pointerekkel, de úgyse nagyon ment, GCC hibát írt ki rá.
Előre is köszönöm!
Üdv: Balu''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
Bazsesz
őstag
Hali megint!
Naszal következő feladat (minden napra 1 ):
Írjon saját függvényt, amely egy adott fájlból megszámolja a sorközök, szóközök, és tabulátorok számát.
Szal ott tartok, hogy egyelőre main() függvénybe próbálom megírni. Odáig oké, hogy a fájlból kiirdogálja nekem a karakterek számát. de....
#include <stdio.h>
#include <stdlib.h>
main() {
int c[256],i;
char *s,kilep;
FILE * f;
f=fopen(''prog4.txt'',''r'');
while (!feof(f)) {
s=fgetc(f);
c[s]+=1;
}
while (i=0,i<=256,i++) {
if (c!=0) {
printf(''%c - %d\n'',i,c);
}
}
fclose(f);
}
Szal az addig oké, hogy i=71-nél pölö az alábbit írja ki:
(G)(71): <amennyi előfordul benne>
nade ugyebár azt hogy tudnám megcsinálni, hogy mondjuk csak a három megadott karaktert írja ki?
mert úgy nem okés, hogy printf(''%d'',t[G]);. szal valami ötletet várnék erre....
Előre is köszönöm!
Üdv: Balu''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
Bazsesz
őstag
Ezt eddig énis tudom. Csak az a megoldási fajtája kéne, hogy ha mondjuk azt mondják, hogy ne a tab legyen, hanem az ''A'' betű, akkor mit csinálok? (mondjuk ilyen nem lesz, mert a feladatok fixek elvileg)
szal azt kéne, hogyha mondjuk azt kérné, hogy a vizsgálat után meliyk karaktereknek kéri a mutatását, egy scanf-fel elintézve egy char tipusú változóba, akkor azzal se legyek elveszve.
szal mintha mondjuk azt mondanám, ha lehetne, hogy :
if (i==''\n'') { printf(''%d'',t[ i]); }
csakhát ez így necces, mert megoldhatatlan.
strcmp-vel nem lehet, mert az i nem char tipusú, hanem int. de ha a printf-be %d helyett %c-t teszek kiírja a számnak megfelelő karaktert
Üdv: Balu
Szerkesztés: javítgatás....
[Szerkesztve]''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
bdav
őstag
válasz Bazsesz #1767 üzenetére
na ezt a hszedet nem tudom értelmezni. de ha az eredeti problémát jól vágom akkor annyi kell h. a '\n' '\t' és ' ' karaktereket számold. amit írtál progi az minden karakter előfordulását nézi, tök feleslegesen. (ráadásul külön függvényt kér)
én így írnám meg:
void charCount(char* fileName)
{
FILE* f=fopen(''fileName'', ''r'');
int s=0;
int spaceCount=0;
int nCount=0;
int tCount=0;
do
{
s=fgetc(f);
if(s=='\n') nCount++;
if(s=='\t') tCount++;
if(s==' ') spaceCount++;
} while(s!=EOF);
printf(''\\n száma: %d'\n\\t száma: %d\nspace száma: %d', nCount, tCount, spaceCount);
}
mod: amit te irtál az is kb. ugyanezt teszi, csak megszámol mindent feleslegesen. ja és a while és for ciklust megint felcserélted. Kiírásnál meg nem lennék benne biztso hogyha a \n-t karakterként írod ki akkor nem tesz e inkább ujsort (ezért írok én pl. \\-t). egy iffel rá tudsz szürni mondjuk és akkor csak a szükségeseket írja ki (if(c[ i ]=='\n') printf(''\\n száma: %d'', c[ i ]);)
[Szerkesztve]10 féle ember van a világon. Aki ismeri a kettes számrendszert és aki nem. ''A név nincs hosszabb páncélszekrény''
-
-
Bazsesz
őstag
Köszönöm a segítséget! Ezalapján sikerült a sajátomat megcsinálni.
A helyzet az, hogy nem vagyok valami penge C-ből (mint ahogy másból se nagyon...). a while ciklus azért maradt meg, mert gyakorlaton egyszer használtunk for ciklust. talán, dehet azis előző félévben volt.
6 feladatból 4 mostmár készen van, már csak egy kell, és sztem elég is lesz.
feladat:
szintén írni kell saját függvényt, ami megmondja, hogy két stringben melyik a legelső eltérő karakter....
Ennél arra gondoltam, hogy a stringet karakterekre bontom, és tárolom egy tömbben, aztán végigszaladok a tömbön egy ciklussal, strcmp-vel összehasonlítgatom a tömböket, majd amelyik eltér, annak a sorszámát elmentem egy int tipusú változóban, és kiiratom.
Na itt a probléma: hogy kéne azt megoldani, hogy a stringeket karakterekre bontom, majd a karaktereket eltárolom egy tömbben. van rá valami függvény?''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
shev7
veterán
válasz Bazsesz #1771 üzenetére
C ben nincs olyan hogy string, nem? char*-ot hasznalsz/unk. Innen meg egyszeru, mivel a tombok ugy mukodnek mint a pointerek, ezert ha van egy olyanod hogy char* string1, akkor a string1[ 0 ] a string elso karakteret adja vissza, es igy tovabb. Persze figyelni kell a hosszra, de azt meg lekerdezed a stlen fuggvennyel.
A masik modszer, amihez semmit nem kell gondolkodni az strncmp fv. Ez ket stringbol hasonlitja ossze az elso n karaktert ( strncmp(char*,char*,int) ) 0val ter vissza, ha egyezes van.
[Szerkesztve]''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
bdav
őstag
-
Bazsesz
őstag
Köszönöm, megnézem mit tudok vele alkotni. Komolyan mondom itt jövök rá, hogy mennyire nem tudok, meghogy megint pályát tévesztettem.... De hát ez van, ezt kell szeretni.
Na, írok, aztán jelentkezek
Üdv: Bazsi''Játék a szavakkal mintájára Dúd a betűkkel :d Előadja Bazsesz művészúr :)'' by Esmein
-
Gergello
addikt
hi
C-ben szeretnék írni egy szavazó programot ami x-er felmegy egy oldalra
minden okés kivéve, hogy hogy léptettem fel az oldalra (amatör vagyok 1. éve tanulok c-ben programozni) -
Jester01
veterán
válasz Gergello #1777 üzenetére
Oprendszer? http protokollt kézzel implementálni azért nem teljesen triviális, windózban vannak rá függvények, gondolom más oprendszerre is vannak libek.
Ha nem szükséges c-ben csinálni, akkor én simán scriptből futtatnék parancssoros letöltő progit (pl. wget). Persze ez a megoldás c-ből is járható, csak nem szép.Jester
-
Nedudgi
aktív tag
válasz Gergello #1779 üzenetére
Szia!
Szerintem ez így ebben a formában minden ismérvével rendelkezik a rosszul specifikált programozási feladatnak. Mit akarsz?
- Azt hogy kattintson a megfelelő helyre? Erre ajánlanék valamilyen eventrobotot.
- Azt hogy létesítsen HTTP-n keresztül kapcsolatot, kérje le az oldalt, majd küldjön vissze egy HTTP-s post/get választ ''mintha'' rányomtál volna a submitra?
Az utóbbi az szerintem egy kicsit macerás lesz, és javaslom hogy olvasd át a c-s hálózati programozáshoz a beej's guide-ot [link], és a HTTP protokoll leírását. Bár a guide amit adtam linuxhoz jó...Windows alatt talán .NET-ben vannak HTTP-s függvények amivel egyszerűbb lesz.
Mod: Eventcorder/Eventrobot: [link]
[Szerkesztve]It took the computational power of three Commodore 64s to fly to the moon. It takes a 486 to run Windows 95. Something is wrong here. -- SC sig file UBUNTU - KDE - Rock'n'Roll
-
Forest_roby
őstag
Hi!
Pitiáner probléma, de ..... Na mindegy.
C# nyelv.
Hogy lehet szabvány bemenetről (billentyűzetről) egy változóba betőlteni egy számot?
( != '\n' )
Én a getchar -al próbálkoztam, de azzal nem mentem semmire.... Fileból persze sikerűlt, de simán bill.-ről nem.
szóval ez lenne a kérdés!
Előre is köszi a segítséget!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Forest_roby
őstag
válasz Forest_roby #1781 üzenetére
up
-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
Fisha
őstag
válasz Forest_roby #1781 üzenetére
nem ertek hozza, csak googlirol szedtem.
using System;
class InputIntro
{
public static void Main()
{
string input = '''';
int intTest = 0;
float floatTest = 0;
Console.WriteLine(''Type in an integer:'');
input = Console.ReadLine();
intTest = int.Parse(input);
Console.WriteLine(''Type in a decimal:'');
input = Console.ReadLine();
floatTest = float.Parse(input);
Console.WriteLine(''int: {0} float: {1}'', intTest, floatTest);
}
} -
Forest_roby
őstag
Tiszta hülye vagyok!
Nem tudom biztosan, hogy van -e külön ilyen prog nyelv ( C# ), de ha igen, akkor pontosítok.
nyelv: C
//és nem C++//
Fisha:
ez nem jó nekem, bocs én rontottam el a kérdést!
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1784 üzenetére
scanf(''%s'',c); //beolvasod char* valtozoba
i=atoi(c); //konvertalod int-be. Kell hozza stdlib.h
MOD es igen, van olyan nyelv, hogy C#
[Szerkesztve]''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
THX!
#include <stdio.h>
#include <stdlib.h>
main(){
printf(''Irj be egy szamot!\n\n'');
int be;
char c;
scanf(''%s'',c); //beolvasod char* valtozoba
be=atoi(c); //konvertalod int-be. Kell hozza stdlib.h
.....
.....
}
hibát jelez a fordító! Valamit elrontottam?
ui.:
Igaz, ezt Windows Xp alatt próbáltam lefordítani a ''dev c++'' progival. Nem igazán ismerem, Linux alatt szoktam programozni. Lehet, hogy a progival van baj.-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1786 üzenetére
ez csak akkor mukodik ha egyjegyu szamot akarsz beolvasni, viszont akkor a c helyett &c-t kell irni. Ha tobb jegyut akarsz, akkor a c valtozot tombnek kell definialni (ahany jegyut akarsz) es akkor nem kell a c-t &c-re cserelni. Ha dinamikusan akarod valtoztatni, akkor hasznalj char* -ot es foglalj neki megfelelo teruletet.
MOD: no offense, de ez meg ugyanugy mukodik linux es windows alatt is.
[Szerkesztve]''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
Köszi minden segítséget, de nem akar működni.
Lennél oly szíves és kijavítanád a hibát?
[CODE]
#include <stdio.h>
#include <stdlib.h>
main(){
int be;
char c[4] = { 0 };
scanf(''%[0123456789]'', c);
be=atoi(c);
printf(''%d\n'',be);
}
[/CODE]
Előre is köszi!-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
shev7
veterán
válasz Forest_roby #1788 üzenetére
pedig ez mukodik.
%[0123456789] ennek a helyere nyugodtan irhatsz %s-t. Az atoi fv megcsinalja a szukseges atalakitasokat.''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
válasz Forest_roby #1790 üzenetére
miert? nem %d kell?
''Gee, Brain, what do you want to do tonight?'' ''The same thing we do every night, Pinky: Try to take over the world!''
-
Forest_roby
őstag
szerintem ezzel a dev c++ progival is van vmi gubanc. mindenesetre miután kijavítottam %s -re utánna működött. ( aztán ki is töröltem, mert nem volt rá szükségem )
ui.:
egyébként ez egy egyszerű római számmá konvertáló progi.
mod:
ha vkinek kellene:
#include <stdio.h>
#include <stdlib.h>
main(){
printf(''Irj be egy max. negyjegyu szamot!\n\n'');
int be;
char c[4] = { 0 };
scanf(''%[0123456789]'', c);
be=atoi(c);
for (be; be >= 1000; be=be-1000) {
printf(''M'');
}
for (be; be >= 900; be=be-900) {
printf(''CM'');
}
for (be; be >= 500; be=be-500) {
printf(''D'');
}
for (be; be >= 400; be=be-400) {
printf(''CD'');
}
for (be; be >= 100; be=be-100) {
printf(''C'');
}
for (be; be >= 90; be=be-90) {
printf(''XC'');
}
for (be; be >= 50; be=be-50) {
printf(''L'');
}
for (be; be >= 40; be=be-40) {
printf(''XL'');
}
for (be; be >= 10; be=be-10) {
printf(''X'');
}
for (be; be >= 9; be=be-9) {
printf(''IX'');
}
for (be; be >= 5; be=be-5) {
printf(''V'');
}
for (be; be >= 4; be=be-4) {
printf(''IV'');
}
for (be; be >= 1; be=be-1) {
printf(''I'');
}
}
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
cucka
addikt
válasz Forest_roby #1792 üzenetére
ezt egyszerűbben is meg lehet írni némi gondolkozás után. az elgondolás, hogy nem írjuk le ugyanazt 13-szor, ha elég egyszer megtenni. (lehet becsúszott itt-ott szintaktikai hiba a kódba, nem próbáltam ki).
void main(){
//beolvasás billentyűzetről a 'be' változóba
int i;
int szamok[]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string jelek[]={''M'',''CM'',''D'',''CD'',''C'',''XC'',''L'',''XL'',''X'',''IX'',''V'',''IV'',''I''};
for (i=0;i<13;i++){
while (be>szamok){
printf(''%s'',jelek);
be=be-szamok;
}
}
}
[Szerkesztve] -
Forest_roby
őstag
Igazából ezt is vártam. Biztos voltam benne, hogy vki fog ide írni egy sokkal jobb, frappánsabb megoldást. Igaz, ami igaz, a te megoldásod rövidebb. Én is gondolkoztam rajta, hogy tudnám kiváltani a sok for-t eggyel, de nem jöttem rá. Gondoltam rá, hogy egy ciklussal, mint ahogy te is, de ......., nem tudom a ''szamok[]'' -at (1000, 900, 500, ....) ill. a ''jelek[]'' -et (M,CM,D,....) hogy hozom be a képbe, hogy minden ciklusban más és más szerepeljen. Igazából én még nem is láttam ilyen fajta gondolkodású megoldást. Egyszerű és mégis zseniális. Tetszik, ezt megjegyzem magamnak.
-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
cucka
addikt
válasz Forest_roby #1794 üzenetére
még elegánsabb (szerintem), ha a for (i=0;i<13;i++) sorban i<13 helyett i<(sizeof(szamok)/sizeof(int)) szerepel.
-
Forest_roby
őstag
reklamál a fordító!
van olyan változótípus, hogy string?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main(){
printf(''Irj be egy max. negyjegyu szamot!\n\n'');
int be;
char c[4] = { 0 };
scanf(''%[0123456789]'', c);
be=atoi(c);
int i;
int szamok[250]={1000,900,500,400,100,90,50,40,10,9,5,4,1};
string jelek[250]={''M'',''CM'',''D'',''CD'',''C'',''XC'',''L'',''XL'',''X'',''IX'',''V'',''IV'',''I''};
for (i=0;i<13;i++){
while (be>szamok[ i ]){
printf(''%s'',jelek[ i ]);
be=be-szamok[ i ];
}
}
}
[Szerkesztve]-=Legyél Laza!=- __ ''Have you tried turning it off and on again?'' __ ''Is it definitely plugged in?'' /o\ :D:D
-
cucka
addikt
válasz Forest_roby #1796 üzenetére
próbáld így
char* jelek[]={ ... }
és ne foglalj le 250 elemű tömböket. mivel megadod a tömb változóit, ezért a fordító majd kitalálja, mennyi helyet kell neki foglalni. ezt jelenti az a [] . -
cucka
addikt
válasz Forest_roby #1798 üzenetére
hm tényleg >=. éjjel fél 3-kor írtam azt a kódot, mondtam, hogy lehet becsúszik 1-2 hiba
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Kertészet, mezőgazdaság topik
- Robogó, kismotor
- YouTube
- Anime filmek és sorozatok
- OLED TV topic
- Total Commander
- Google Pixel 6/7/8 topik
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Volkswagen ID.7 menetpróba
- További aktív témák...