[ w3bl0rd @ 14.03.2006. 18:47 ] @
evo imam npr jedan jednostava kod... ali me j*b* u zdrav mozak...
Code:

#include<iostream>
#include<conio.h>
using namespace std;
int main(void)
{
        short int f;
        cin>>f;
        char s[f][f];
        for(int i=0;i<=f;i++){
        cin.getline(s[i],'\n');}
cout<<s[1];
    getch();
    return 0;
}

evo ovo je kod...
zar nije s[1] drugi string? odnosno ono što se unese u drugoj liniji... i kad ispisujem to ispišu se sva tri stringa znači prelazi mi "preko" kao da nema \0 na kraju stringa zašto kako??? kompajler je mingw odnosno dev-cpp IDE jednostavno ne kužim svaka pomoć dobrodošla...

[Ovu poruku je menjao X Files dana 15.04.2009. u 08:56 GMT+1]
[ k4rl0 @ 14.03.2006. 19:15 ] @
Tu sam se i ja mucio..
Totalno je glupo raditi polja char tipa podataka..
Ako koristis C++,radije koristi tip string.
Dakle:

#include<iostream>
void main()
{
string rijec[50];
rijec[1]="Bok";
rijec[2]="Zdravo";
}

Na taj nacin si napravio polja stringova i
tako si popunio polje 1 i 2,a ne kao kod
charova kada napises char[1]=samo 1 znak.
Dakle string[3] znaci
| | | | | | | | | | | | | | | | | | | |-->string1
| | | | | | | | | | | | | | | | | | | |-->string2
| | | | | | | | | | | | | | | | | | | |-->string3

A char[3] znaci
| char[1] | char[2] | char[3] |
Nadam se da kuzis :)
[ w3bl0rd @ 15.03.2006. 16:18 ] @
ma trebam baš sa char... daj neko preuredi ovaj zadatak da funkcionira tak da skužim...
[ w3bl0rd @ 16.03.2006. 09:22 ] @
ma skužio...
#include<iostream>
#include<conio.h>
using namespace std;
int main(void)
{
short int f;
cin>>f;
f++
char s[f][f];
for(int i=0;i<=f;i++){
cin.getline(s,'\n');}
cout<<s[1];
getch();
return 0;
}

zato jer je ispunilo sva polja i zaista nije bilo \0 na kraju...
[ brcha @ 16.03.2006. 09:30 ] @
Citat:
w3bl0rd: ma skužio...
#include<iostream>
#include<conio.h>
using namespace std;
int main(void)
{
short int f;
cin>>f;
f++
char s[f][f];
for(int i=0;i<=f;i++){
cin.getline(s,'\n');}
cout<<s[1];
getch();
return 0;
}


Ali nisi baš najbolje skužio :) Treba da učitavaš u s[_i] (podvlaku ignoriši, tu je zbog nemogućnosti ovog foruma da napiše i u uglastim zagradama a da to ne tumači kao italik), a ne u s. Takođe, ne treba da ideš do f već do f-1, što se najlakše piše tako što staviš uslov u petlji da bude i < f. Tj. ova tvoja petlja treba da izgleda ovako:

Code:

for (int i=0; i<f; i++){
   cin.getline(s[i], '\n');
}


Pozdrav
Filip
[ leka @ 16.03.2006. 12:39 ] @
Kao sto je vec receno, predlazem koriscenje std::string-a u C++-u.

Code:

/*********************************************************\
file:        weblord01.cpp
compile:     g++ weblord01.cpp -o weblord01
run:         ./weblord01
author(s):   Dejan Lekic, http://dejan.lekic.org
\*********************************************************/

#include <cstdio>
#include <iostream>

using namespace std;

int main(int argc, char** argv)
{
  short int f;
  char buf[1024];
  cout << "Dimenzija: ";
  cin >> f;
  char s[f][f];
  cout << "prompt> ";
  for(int i=0; i<f; i++)
  {
    cin.getline(buf, 1024);
    buf[1023] = '\0'; // paranoja :)
    strcpy(s[i], buf);
  }
  cout << s[1] << endl;
  getchar();
  return 0;
}

/* Rezultat
Dimenzija: 5
prompt> Pera
Mika
Zika
Gruja
Laza
Pera
*/


[Ovu poruku je menjao leka dana 16.03.2006. u 13:49 GMT+1]
[ NastyBoy @ 16.03.2006. 13:25 ] @
Code:

  short int f;

  // ...

  cout << "Dimenzija: ";
  cin >> f;

  char s[f][f];



Jako me zanima kojim to kompajlerima vi prevodite C kod u kom je *statichka* dimenzija niza inicijalizovana *promenljivom* vrednoshcu.


[Ovu poruku je menjao NastyBoy dana 16.03.2006. u 14:26 GMT+1]
[ Dragi Tata @ 16.03.2006. 13:38 ] @
Citat:
NastyBoy:


Jako me zanima kojim to kompajlerima vi prevodite C kod u kom je *statichka* dimenzija niza inicijalizovana *promenljivom* vrednoshcu.


Verovatno gcc. C99 standard je uveo Variable length arrays.

[Ovu poruku je menjao Dragi Tata dana 16.03.2006. u 14:39 GMT+1]
[ leka @ 16.03.2006. 13:43 ] @
Pre bih rekao da je C++ kod nego C kod...

Usput, lepo u zaglavlju koda pise koji kompajler je u pitanju: "compile: g++ weblord01.cpp -o weblord01" :)


[Ovu poruku je menjao leka dana 16.03.2006. u 14:46 GMT+1]
[ Dragi Tata @ 16.03.2006. 13:46 ] @
Ma pričali smo o tome ranije. gcc dozvoljava neke C99 konstrukcije i u C++ kodu.
[ NastyBoy @ 16.03.2006. 13:48 ] @
Microsoft taj kod ne prevodi.
A ni GCC4 na Mac-u. Jedino josh da probam GCC3.x na Soniju pa da dizhem ruke od C99.


* Off-topic : mislim da su v-len nizovi losha ideja u svakoj primeni sem trivijalnih, narochito ako ih kompajler automatski smeshta na stek.... shto opet ne vidim kako mozhe efikasno i optimizovano da izvede ako unapred ne zna layout varijabli, narochito ako se takav niz prvi smeshta na stek... bad idea...
[ Dragi Tata @ 16.03.2006. 13:48 ] @
Uzgred, ako neko od "funkcionera" prati ovaj forum - u poslednje vreme se često dešava da postovi koje šaljem imaju subject: Re: Zabrana instanciranja šablona za određeni tip?
[ Dragi Tata @ 16.03.2006. 13:51 ] @
Citat:
NastyBoy: Microsoft taj kod ne prevodi


Pa i ne treba da ga prevodi - to nije standardan C++. Inače, na gcc-u probaj da kompajliraš kao C (gcc) a ne C++ (g++). Trebalo bi da radi i na 4.0. Milo mi je da su sredili taj bag da je i C++ kompajlirao VAL
[ NastyBoy @ 16.03.2006. 13:55 ] @
Citat:
Pa i ne treba da ga prevodi - to nije standardan C++


Naravno, zato sam i pomenuo MS i postavio off-topic pitanje.
Onaj post sam izgleda pisao u isto vreme sa tvojim "gcc dozvoljava neke c99 konstrukte" komentarom.