- Multifunkciós adattároló érkezett a Patriot színeiben
- Egyedi megjelenésű Radeon VGA a Yeston és a GravaStar keze nyomán
- 5:4 képarányú SXGA monitor jön ősszel az EIZO berkeiből
- Úgy tér vissza a Commodore 64, ahogy titkon mindenki várja
- A hírek szerint a jövő év végére érkezhet a sokat pletykált NVIDIA N1X SoC
-
PROHARDVER!
Új hozzászólás Aktív témák
-
Gerghu
csendes tag
Sziasztok ujra segitségre van szükségem: egy vektort akarok rendezni a magyar ábécé szerint:
bool cmp( string a, string b ) {
return a[0] < b[0];
}
...
sort( l.begin(), l.end(), cmp);
Ez első betű szerint rendezi! Gondolom munkás kiégeésziteni a cmp metódust hogy jól működjön, de kérek valakit hogy pl az á betűn mutassa be! Köszönöm -
Spyx
tag
Sziasztok!
C# -ban fejlesztek .NET-et használva és a köv problémám lenne.
van egy Button a Form ablakon. a Button.MouseClick -hez hozzáadtam két MouseEventhandler-t.
lenne egy a jobb(MouseButtons.Rigth) és a bal(MouseButtons.Left) gomb lenyomására. A jobb gombra valamiért nem reagál. Sőt kipróbáltam. a middle-re se reagál.
Microsoft IntelliMouse Optical 1.1A egerem van.
pl a jobb kattintás így van lekezelve:
this.mButtons[i, j].MouseClick += new MouseEventHandler(this.rClick); //ez csak egy sor a gomb inicializálásánál
private void rClick(object sender, MouseEventArgs e)
{
Button temp = (Button)sender;
if (e.Button == MouseButtons.Right)
{
if (temp.Text == '''')
{
temp.Text = ''*'';
}
else
{
temp.Text = '''';
}
}
}
Hogy lehet ezt a hibát kiküszöbölni. a Bal kattintás tökéletesen működik.
Plusz még egy probléma.
Manuálisan felrakok táblázatosan elrendezve( 10*10) 100 gombot.
minden gombot bal katt hatására leszedek a Form-ról és ezután valamiért a sorban utánajövőre kerül a focus. hogy lehet megoldani hogy ne legyen egyik se kijelölve, tehát úgymond ne kerüljön vissza egyik control-ra se a focus, de azért a form maradjon aktív? -
Lortech
addikt
válasz
krisztián98 #2297 üzenetére
Nem, a license megkerülése valamint a programkód visszafejtése és módosítása illegális, így a fórumon is tiltott téma.
-
krisztián98
tag
Hi All!
Valakinek az óriási segítségére lenne szükségem.
Van egy program, ami a következő:
http://www.spf.ch/download/polysun40.exe
A probléma az vele, hogy az elején kérné a licencet, amit ki lehet valahogy kapcsolni, az egyik fórumon azt írták, hogy így kell, de nekem ez sajnos nem megy:
a teljes verzio letoltheto a spf.ch oldalrol. Install, majd ezutan visszafejted a polysun.jar file-t es abban konkretan az A.class filet (ott van a licensecheck) kell java decompiler-el visszafejtened. Kikapcsolod a licenc ellenorzest majd compile es ennyi. Minden update utan meg kell ezt csinalni, mivel a polysun.jar alltalaba frissul.
Valaki egészen pontosan le tudná írni, hogy hogyan kell egészen pontosan megcsinálni lépésről lépésre? -
KPepe
senior tag
Azt hiszem úgy csinálom, hogy template típusú lesz a vector, és egyszer inttel hívom meg, másodszor meg string-el. Fixen a programban lesz, szóval a típus nem véletlenszerű, szerintem elég ha mindkét típust elfogadja.
Köszi a segítségeket emvy, amargo, meglátom mit tudok kihozni belőle... -
amargo
addikt
Kis segítség a template-hez
[link]
Elég jól leírják. -
template <class T>
class Feltoltes
{
private:
vector<T> tarolo;
int vechossz;
public:
Feltoltes(int vh);
void feltolt_billentyuzetrol();
void feltolt_random();
}
Azt, hogy barmilyen tipussal veletlenszeruen fel lehessen tolteni egy vektort, eleg nehezen ertelmezem, hiszen a templatezett osztalynal tudnunk kellene, milyen parametereket allithatunk veletlenszeruen, stb.
A sablonparameter itt a template-kre utal. Keress ra a ''template'' szora, es meg fogod talalni a magyarazatat. -
KPepe
senior tag
üdv!
Kell beadandót csinálnom, de nem egészen értem az első részfeladatot:
C++, Policy Based Class Design
''Feladatunk egy vector tároló feltöltése és kiíratása lesz a következő szempontok figyelembevételével:
- Definiáljunk egy ''Feltoltes'' osztályt, melynek feladata egy vector tároló feltöltése. Az osztály tartalmazzon legalább két metódust, melyek különböző módon töltik fel a vectort (pl. egyik billentyűzetről, másik véletlenszerűen). Az osztály sablonparaméterként vegye át a vector elemeinek típusát és azt, hogy a vector hány elemet tartalmaz.''
A dőlt részt nem értem. Hogyan és minek kell átvenni az elemek típusát? -
PazsitZ
addikt
válasz
Forest_roby #2290 üzenetére
Működik, köszi szépen!
(#2291) shev7: igen pont körbeforgos kell nekem! Neked is köszi!
[Szerkesztve] -
Forest_roby
őstag
válasz
PazsitZ #2289 üzenetére
Asszem vmi ilyesmi:
#include <stdio.h>
#include <string.h>
char *eltolas( char *tomb ){
int n,N;
int x=2;
N=strlen( tomb );
for( n=0; n<N; ++n ){
tomb[n]=tomb[n]+x;
}
return( tomb );
}
main(){
char tomb[32];
strcpy( tomb, ''abcdefghi'' );
printf(''%s\n'', eltolas(tomb));
}
de most nincs időm tesztelni.....
Finomítsad!
üdv:
Forest
[Szerkesztve] -
PazsitZ
addikt
Remélem tudtok segíteni:
A problémám az lenne, hogy C nyelvben van egy char[1] változóm, akkor azt hogy tudnám ASCII szerint x karakterrel eltolni. Pl 'a' ASCII=97 karakterből legyen 'c' ASCII=99 ha ezesetben ugye x=2 -vel eltolom.
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #2287 üzenetére
Ki kellett aludni magamat és máris megvan a megoldás!
Először zárójelek nélkül volt a kód, de ugy nem akart lefordulni:
callbacks.c: In function ‘on_used_words1_activate’:
callbacks.c:913: error: ‘strcmp’ undeclared (first use in this function)
callbacks.c:913: error: (Each undeclared identifier is reported only once
callbacks.c:913: error: for each function it appears in.)
callbacks.c:925: warning: incompatible implicit declaration of built-in function ‘strlen’
Elkezdtem keresgélni a hibát és akkor szedtem ki a zárójeleket -ennek hatására le is fordult de nem volt jó....
Ma reggel újra előröl, nem kellett 1 perc és már futott is a progi -hiányzott neki egy header file.....
Az alvás csodákra képes!
/persze vmi még igy se stimmel, de már fut... -egy helyen asszem kifagy/ -
Jester01
veterán
válasz
Forest_roby #2286 üzenetére
Ja talán jó lesz az strcmp oda. De zárójelek nélkül, mert akkor kapod meg a címét! Igy egy függvényhívás lesz, ráadásul paraméterek nélkül. Nem is értem hogy fordulhat le, bár sikított érte a fordító.
MOD: Az az strlen-es warning is erõsen gyanús...
[Szerkesztve] -
Forest_roby
őstag
válasz
Jester01 #2285 üzenetére
igen, valószínűleg ott van a probléma...
ugy néztem, hogy a g_tree_new() -ba kell egy fv-t tenni, ami összehasonlítja az elemeket -erre az strcmp() jó, nem?
/msn -en akár mikor odaadom a progit, bár mostmár ráférne a nagytakarítás, -sok az egyforma rész benne.... -kicsit rendszereznem kell a dolgokat. -
Jester01
veterán
válasz
Forest_roby #2284 üzenetére
word_tree = g_tree_new(strcmp());
Ez mi akar lenni?
MOD: amúgy szokás szerint jó lenne a teljes progi + makefile hogy ki lehessen próbálni.
[Szerkesztve] -
Forest_roby
őstag
HI!
Ránéznétek erre? Csak pár hiba kiszűrésének céljából -én már tutkón nem veszek észre semmit ( két napja csinálom /nem pont ezt/ és vérvörösek a szemeim.... )
code:
void
on_used_words1_activate (GtkMenuItem *menuitem,
gpointer user_data)
{//NEM MEGY!
GtkTextView *text_view;
GtkTextBuffer *text_buffer;
gboolean is_true;
GtkTextIter start_word;
GtkTextIter end_word;
typedef struct rekord{
gchar *word;
gint presence;
}rekord;
GTree *word_tree;
GList *word_list;
GList **word_list_pointer = &word_list;
rekord *used_word = g_malloc(sizeof(rekord));
word_tree = g_tree_new(strcmp());
gchar *word;
text_view = GTK_TEXT_VIEW(lookup_widget(GTK_WIDGET(menuitem), ''textview1''));
text_buffer = gtk_text_view_get_buffer(text_view);
gtk_text_buffer_get_start_iter(text_buffer, &start_word);
gtk_text_buffer_get_start_iter(text_buffer, &end_word);
while (gtk_text_iter_forward_word_end(&end_word)){ //van még szó?
start_word = end_word;
gtk_text_iter_backward_word_start(&start_word);
word = gtk_text_buffer_get_text(text_buffer, &start_word, &end_word, TRUE);
word = g_utf8_strdown(word, strlen(word));
if ((used_word = g_tree_lookup(word_tree, word)) == NULL){ //lóg a fán ez a szó
used_word = (rekord *)malloc(sizeof(rekord));
used_word -> word = g_strdup(word);
used_word -> presence = 1;
g_message(''%s(): first read word: %s'', __func__, word);
g_tree_insert(word_tree, g_strdup(used_word -> word), used_word); //fen a fán a szó
g_free(word);
}else{
used_word -> presence++; //a szó a fán volt ezért megjegyzem
}
}
g_tree_foreach(word_tree, from_tree_to_list, word_list_pointer); //itt is fagy
g_tree_destroy(word_tree);
}
A fügvény gomblenyomásra fut le és egy szövehszerkesztőben lévő szövegről kellene statisztikai infókat visszaadnia. A kód lefordúl, de hibát ír ki:
callbacks.c: In function ‘on_used_words1_activate’:
callbacks.c:913: warning: passing argument 1 of ‘g_tree_new’ makes pointer from integer without a cast
callbacks.c:925: warning: incompatible implicit declaration of built-in function ‘strlen’
futatáskor pedig szegmens hibával kilép a progiból....
Előre is köszi a segítségeket. észrevételeket!
Forest -
Gerghu
csendes tag
Sziasztok!
Standard Template Library-ban kellene a segitség mert most ismerkedek vele.
Egy telefonkönyvtár osztályt csinálok amiben neveket tárolok, majd iterátort is kell irni hozzá.
A kérdésem hogy milyen tárolót ajánlanátok hozzá? (vezeték és keresztneveket kell tárolni)
És igen kötelező program a suliban, nem akarom megoldatni csak nem tudom milyen tárolót használjak
köszönöm a segítséget -
Atlas
csendes tag
c++
-
Atlas
csendes tag
Hello
Kellene egy gyors help :
7 nap megmértük reggel 8 kor a hőmérsékletet celziusfokban
Bekéri a mért hőmérsékletet ( mind a 7 et)
és a program kiválasztja ezek közül a legnagyobbat
Egy ilyen program kéne, a lehető legegyszerübb megoldással.
Előre is köszönöm a segítséget. -
Jester01
veterán
-
hogy kell egy tetsőleges szövegben a sorok számát meghatározni! valaki megdobna egy kóddal? köszi!
-
hmm. kérdés: hogy kell azt ,hogy ellenőrizzem c++ ban ,hogy egy változó szám -e?
-
Sziasztok! Tömbö problémám akadt:
#include <iostream>
using namespace std;
int main()
{
int x[5];
int i, c, max;
i = 0;
while ( i < 5 )
{
cout << ''Kerem be a(z) x tomb ['' << i <<''elemet: '';
cin >> x;
i++;
}
i = 0;
while ( i < 5 )
{
// cout << ''\n'' << ''x ['' << i << '': '' << x;
i++;
}
i = 0;
max = 0;
while ( i < 5 )
{
c = x[i+1] - x;
// cout << fabs(c);
if ( max < c )
{
max = c;
}
i++;
}
cout << max;
cin.ignore();
cin.get();
}
a végén mindig egy hatalmas számot ad meg. ami fix. mi a baj? -
Jester01
veterán
válasz
Forest_roby #2266 üzenetére
Az a baj, hogy a tömböt lokálisan foglaltad le (a veremben lesz) és így megszűnik amikor a függvény visszatér.
-
Forest_roby
őstag
Hi!
Megnéznétek, hogy ezzel mi a gubanc? /még mindig nem tudok normálisan bánni a * és az & jelekkel/
code:
1. fv:
void mark_set_func(GtkTextBuffer *buffer,/*buffre*/
GtkTextIter *newpoz,/*new loc*/
GtkTextMark *mark,/*being set mark*/
gpointer *t)
{
gchar *m;
gint offset;
offset=gtk_text_iter_get_offset(newpoz);
gtk_statusbar_pop(GTK_STATUSBAR(t[0]),0);
m=g_strdup_printf(''cursor pozicion:%d'',offset);
gtk_statusbar_push(GTK_STATUSBAR(t[0]),0,m);
g_free(m);
g_message(''----------------------------------------'');
g_message(''%d. karakternél van a cursor!\n'', offset);
.....
.....
.....
}
----------------------
2. fv:
void
on_myeditor_window_realize (GtkWidget *widget,
gpointer user_data)
{
GtkWidget *combo;
GtkWidget *text;
GtkTextBuffer *buffer;
GtkWidget *bar;
text=lookup_widget(widget,''myeditor_textview'');
bar=lookup_widget(widget,''myeditor_statusbar'');
buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(text));
combo = lookup_widget(widget,''textstyle_comboboxentry'');
gpointer* t[5];
t[0] = combo;
t[1] = bar;
g_signal_connect ((gpointer)buffer,''mark-set'',G_CALLBACK(mark_set_func),t);
gtk_statusbar_push(GTK_STATUSBAR(bar),0,''ready'');
}
--------------
--------------
A probléma a t[5] tömb-el lesz vhol. A cél az, hogy egy tömbben eltároljak pointereket és a tömbre mutató pointert adjam át az 1. fv-nek, mert csak 1 db pointert tudok átadni.
A 2. fv-ben lévő t tömbben szeretném eltárolni a poitereket és ezt átadni az 1. fv-nek.... nyilán rosszúl. : (
Hogy kell ezt helyesen megcsinálni?
Előre is köszi!
Forest
mod: Jester01 adta az ötletet, hogy így csináljam, csak a megvalósításban már nem tudott segíteni - kilépett az msn-ből
[Szerkesztve] -
Jester01
veterán
Ha mindenáron substr, akkor fordítva van a 2 paraméter: start, hossz.
Tehát substr(i, 1) kell. De mivel karakterről van szó, ezért simán indexelheted is a stringet. A string indexelés egyébként 0tól kezdődik.
Amúgy ha szavakat kell számolni, akkor figyelembe kell venni, hogy több szóköz is lehet a szavak között. -
#include <iostream>
using namespace std;
int main()
{
string txt;
int n;
int i;
int c;
cout << ''Kerek be egy szoveget: '';
getline(cin, txt);
n = txt.length();
i = 1;
c = 1;
cout << n << endl;
while ( i < n ) {
if ( txt.substr(0, i) == '' '' ) {
c = c + 1;
}
i++;
}
cout << c;
cin.get();
return 0;
}
sziasztok! n-re mindig egyt kapok értéknek. mi lehet a baj?c++
-
amargo
addikt
Adott egy Win XP sp2.. Egy hálózatba kötött nyomtató (lehet ezzel van baj?), mivel még localisat nem sikerült beszereznem. Ennek a lekérdezésnek, akkor is mennie kellene a végén a loggolás már tényleg elég buta, de semmi változást nem ad. Persze ciklusba hívom a függvényt, de semmi változás. Mindig 0-t kapok csak.
//----------------------------------------------------------------
DWORD GetPrinterStatus( char* szPrnName )
{
HANDLE hHandle = 0; // Handle of the printer
DWORD dwStatus = 0; // Printer status we should receive
// Few values for example:
// 0x00000000 - ready
// 0x00000001 - paused
// 0x00000002 - error
// 0x00000200 - busy
// 0x00000400 - printing
// for more info please see MSDN
DWORD dwSize = 0; // Size of memory we should
// allocate for PRINTER_INFO_2
PRINTER_INFO_2* pPrnInfo2 = 0; // Structure specifies detailed
// printer information
DEVMODE DevMode = {0}; // Structure contains information
// about the device initialization
// and environment of a printer
PRINTER_DEFAULTS PrnDef = { 0, &DevMode, PRINTER_ACCESS_USE };
// Open printer with name szPrnName
if( !OpenPrinter( szPrnName, &hHandle, &PrnDef ) )
return 0; // Error
// How many memory should be allocated for printer data?
GetPrinter( hHandle, 2, 0, 0, &dwSize );
if( !dwSize )
return 0; // Error
// Allocate memory
pPrnInfo2 = (PRINTER_INFO_2*)malloc( dwSize );
// Receive printer details
if(!GetPrinter( hHandle, 2, (LPBYTE)pPrnInfo2, dwSize, &dwSize ))
return 0; // Error
dwStatus = pPrnInfo2->Status;
// Free allocated memory
free( pPrnInfo2 );
// Close printer
ClosePrinter( hHandle );
FILE *log;
log = fopen(''nyomtat.log'', ''a+'');
fputs((char*)&dwStatus, log);
fclose(log);
return dwStatus;
} -
amargo
addikt
Sziasztok! csinált már valamelyikőtök olyan progit, ami nyomtatás státuszát kérdezte le?
Tehát, hogy egy adott dokumentum kinyomtattása mennyi ideig tartott?
Ameddig eddig megcsináltam a spoolert(job listát) lekérdeztem ott is tudom figyelni, hogy mikor került ki (ez is cél volna, hogy mennyi idő alatt alakítja át a driver pcl-é a nyomtattni kívánt dokumentumot),
A nyomtató lekérdezésére pedig itt találtam lehetőségeket:
[link]
Na most itt azt gondoltam, hogy ha a nyomtató ''PRINTER_STATUS_PRINTING The printer is printing.'' Akkor nyomtatt
Viszont, ha befejezte, az mi lehet? ''PRINTER_STATUS_WAITING The printer is waiting.'' Na, de itt akár azt is érthetném alatta, hogy már a spoolerben lévő adatokra vár..
Vagy létezik erre már egy kitalállt program, amivel meglehet mérni? timestamp-el? -
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! -
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 -
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] -
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
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 -
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? -
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 nemAz a baj,h már csak konkrét kód tud rajtam segíteni, mert szorít az idő.
-
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.
-
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 -
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 ]; -
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] -
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
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] -
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] -
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] -
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!!! -
gabesz82
őstag
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ó vagyok -
Salak
aktív 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! -
N0rb!
csendes tag
Hát erről lemaradtatok.. Egyedül leszek gazdag.
-
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 -
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! -
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... -
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ááááá
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- AKCIÓ! Csere-Beszámítás! Manli RTX 3070Ti 8GB GDDR6X Videokártya!
- Részletfizetés , Acer Nitro V 15 minimálisan használt uj állapot sok garancia
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 5060Ti 8GB GAMER PC termékbeszámítással
- Beszámítás! Sony PlayStation 5 1TB SSD lemezes konzol extra játékokkal garanciával hibátlan működés
- Ultimate előfizetés új fiókra akár 2105 Ft/hó áron! Azonnali, automatizált aktiválással, csak Nálam!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest