infoarena

infoarena - concursuri, probleme, evaluator, articole => Informatica => Subiect creat de: Petru Dimitriu din Aprilie 13, 2011, 22:34:48



Titlul: fscanf
Scris de: Petru Dimitriu din Aprilie 13, 2011, 22:34:48
De azi tot încerc să mă obişnuiesc cu stdio în loc de fstream ... şi mă lovesc frecvent de o problemă. De multe ori când folosesc fscanf într-un for programul înţepeneşte la linia de cod respectivă... şi zău că nu ştiu ce are. Îmi poate cineva da un sfat?

Iată şi o bucăţică de cod:

Cod:
	FILE * In; FILE * Out;
In = fopen("snipers.in","r");
Out = fopen("snipers.out","w+");
fscanf (In,"%d",&n);
for (i=1;i<=n;i++) { fscanf(In,"%f",&tragator[i].x); fscanf(In,"%f",&tragator[i].y) ; asociat[i] = i; }


Titlul: Răspuns: fscanf
Scris de: George Marcus din Aprilie 13, 2011, 22:42:36
Poti incerca si cu freopen + scanf. Parca e mai simplu asa.


Titlul: Răspuns: fscanf
Scris de: Pavel Razvan din Aprilie 22, 2011, 20:11:31
Apropo de printf ;am incercat sa afisez un long long in windows xp sp3 si nu afiseaza cu "%lld" ,doar cu "%I64d" ,dar a doua varianta nu o compileaza pe infoarena.dc ?
"%lld" http://infoarena.ro/job_detail/583838
"%I64d" http://infoarena.ro/job_detail/583843
cout(afiseaza bine,dar e foarte lent) http://infoarena.ro/job_detail/583844
Puteti sa-mi explicati va rog frumos.

Multumesc anticipat!


Titlul: Răspuns: fscanf
Scris de: Simoiu Robert din Aprilie 22, 2011, 20:47:32
Cred ( nu bag mana-n foc ) ca compilatoarele noi folosesc %lld in locul celui vechi %I64d, cum era %d in loc de %i.


Titlul: Răspuns: fscanf
Scris de: Duta Vlad din Aprilie 22, 2011, 21:07:14
visual studio merge cu %I64d
la minGw nu sunt sigur, dar e posibil sa mearga ambele variante
pe gcc respectiv g++ (compilatoarele folosite pe infoarena, sub linux) se afisaza cu %lld si asta e si standardul din cate stiu.


Titlul: Răspuns: fscanf
Scris de: Popescu Marius din Aprilie 23, 2011, 08:39:44
visual studio merge cu %I64d
la minGw nu sunt sigur, dar e posibil sa mearga ambele variante
pe gcc respectiv g++ (compilatoarele folosite pe infoarena, sub linux) se afisaza cu %lld si asta e si standardul din cate stiu.
Din câte îmi amintesc, parcă mergea şi pe minGw , la Urmaşi lui Moisil am primit o foaie în care scria ca daca vrem să afisăm long long trebuie neapărat sa folosim %I64d.