Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

Vreau sa transform hexa in dec

- - - - -
  • Please log in to reply
18 replies to this topic

#1
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015
http://paste.ofcode....Gk3vxE75eJCZ9Ah

Orice input as introduce, programul ma duce pe linia urmatoare si asteapta un nou input. Ce e gresit la partea de citire? Nu vreau sa folosesc fgets pentru a citi.

Multumesc.

#2
sergiu_spooky

sergiu_spooky

    Senior Member

  • Grup: Senior Members
  • Posts: 3,738
  • Înscris: 23.06.2006
Nu e \r in loc de \n?

Edited by sergiu_spooky, 05 August 2015 - 14:22.


#3
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 sergiu_spooky, on 05 august 2015 - 14:21, said:

Nu e \r in loc de \n?

Da, windows. Nu e peste tot '\n'?

#4
AlinCosmin

AlinCosmin

    Member

  • Grup: Members
  • Posts: 257
  • Înscris: 28.04.2013
In Windows, newlineul e \r\n , iar in Linux e \n

#5
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 AlinCosmin, on 05 august 2015 - 14:34, said:

In Windows, newlineul e \r\n , iar in Linux e \n
Bun, am pus \r. Acelasi rezultat

#6
jobist

jobist

    Senior Member

  • Grup: Senior Members
  • Posts: 2,746
  • Înscris: 23.04.2010
Dacă zici:
hex[i] != '\n'

el se va opri numai atunci când introduci LF(new-line) ; asta e valabil în unix dacă apeşi <Enter> , în wind acesta face CR -şi eventual LF(vezi notepad)- deci nu vei încheia bucla nicicând.
Fă-l să se termine când apeşi 'T'.

#7
sergiu_spooky

sergiu_spooky

    Senior Member

  • Grup: Senior Members
  • Posts: 3,738
  • Înscris: 23.06.2006
La mine versiunea asta merge, desi rulez pe Linux.

#include "stdio.h"
#include "math.h"
int main(int argc, char* argv[])
{
	char hex[10];
		int i, temp, dec = 0, elements = 0, var;
		hex[0] = 'r';
		for (i = 0; hex[i] != '\n'; i++) {
				hex[i] = getchar();
				printf("%d - %c\n", i, hex[i]);
				elements++;
		}
		printf("x\n");
		var = elements;
		for (i = 0; i < elements; i++) {
				switch (hex[i]) {
						case 'A': temp = 10 * pow (16.0, (var-1));
										  break;
						case 'B': temp = 11 * pow (16.0, (var-1));
										  break;
						case 'C': temp = 12 * pow (16.0, (var-1));
										  break;
						case 'D': temp = 13 * pow (16.0, (var-1));
									  break;
						case 'E': temp = 14 * pow (16.0, (var-1));
									  break;
						case 'F': temp = 15 * pow (16.0, (var-1));
										  break;
						default: temp = (hex[i] - '0') * pow (16.0, (var-1));
									  break;
				}
				var--;
				dec = dec + temp;
		}
		printf("d - %d", dec);
		getchar();
		return 0;
}



#8
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015
Imi scapa ceva. Noul cod este http://paste.ofcode....gX352yKbaAbAD5D

Se comporta la fel.

#9
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003
Pentru astfel de probleme (si nu numai) s-a inventat debuggerul. Vezi executia pas cu pas prin cod, inspectezi variabile, tragi concluzii. Invata sa folosesti instrumentele.

Edited by neagu_laurentiu, 05 August 2015 - 15:19.


#10
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 neagu_laurentiu, on 05 august 2015 - 15:14, said:

Pentru astfel de probleme (si nu numai) s-a inventat debuggerul. Vezi executia pas cu pas prin cod, inspectezi variabile, tragi concluzii. Invata sa folosesti instrumentele.

Mda, loopul de la citire este infinit. Nu inteleg de ce.

#11
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003
Ai mers pas cu pas prin for, ai inspectat valorile variabilelor si nu te-ai lamurit ? Ce conditie nu respecta tu dandu-i corect valoarea ? Se vede ca-n palma acolo. Da' sfant e cand tu descoperi, noi doar dam o indicatie. Si cum zici ca vrei sa devii profesionist atunci foloseste instrumentul adecvat (tot apesi o tasta, nu-i mare branza).

Edited by neagu_laurentiu, 05 August 2015 - 19:10.


#12
cspot

cspot

    Guru Member

  • Grup: Senior Members
  • Posts: 12,855
  • Înscris: 22.07.2004
Regula prevede ca intre " " sa pui siguri de caractere si intre ' ' sa pui simboluri.
     Deci x='c' este corect.
     x='xc' este eronat.
     La fel de eronat este si x='\n' si x= '\r'.
     Nu se stie exact cum se va comporta compilatorul in cazul in care intalneste astfel de cocomarle. Unele compilatoare accepta \n si \r ca si caractere speciale, altele nu.
     Unele compilatoare te vor avertiza in privinta utilizarii ilegale a lui ' '  altele nu.

#13
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 cspot, on 06 august 2015 - 11:38, said:

Regula prevede ca intre " " sa pui siguri de caractere si intre ' ' sa pui simboluri.
Deci x='c' este corect.
x='xc' este eronat.
La fel de eronat este si x='\n' si x= '\r'.
Nu se stie exact cum se va comporta compilatorul in cazul in care intalneste astfel de cocomarle. Unele compilatoare accepta \n si \r ca si caractere speciale, altele nu.
Unele compilatoare te vor avertiza in privinta utilizarii ilegale a lui ' '  altele nu.

Si '\n' nu este simbol?

#14
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003
Este.

#15
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 neagu_laurentiu, on 06 august 2015 - 12:09, said:

Este.

Atunci ce vrea sa zica mai sus colegul? Nu prea inteleg...

#16
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003
Nu mai pune urechea la orice vorba auzita.
Vezi ce faci in for-ul ala, ce conditii ai pus, cum se evalueaza.

https://msdn.microso...y/b80153d8.aspx

#17
doru_octavian

doru_octavian

    Junior Member

  • Grup: Junior Members
  • Posts: 35
  • Înscris: 02.08.2015

 neagu_laurentiu, on 06 august 2015 - 12:22, said:

Nu mai pune urechea la orice vorba auzita.
Vezi ce faci in for-ul ala, ce conditii ai pus, cum se evalueaza.

https://msdn.microso...y/b80153d8.aspx
hex[0] = 'r';
for (i = 0; hex[i] != '\n'; i++) {
hex[i] = getchar();
		if ( hex[i] != '\n') {
		   elements++;
		}
}


Varianta asta functioneaza in Linux.
Am facut pe hartie niste inputuri si ar trebui sa functioneze. Din debugger am aflat ca nu se opreste din cititul inputului. Am incercat si '\n' si '\r'.

#18
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,603
  • Înscris: 30.07.2003
Tu stii cand se evalueaza fiecare expresie din for ? De ce nu se opreste, doar vezi in variabila exact ce valoare are.

Aici e precizie, nu "ar trebui sa functioneze" !

Si nu ti se aprinde un bec in minte cand poti merge in nestire in for-ul ala tinand cont ca ai un vector limitat ? Nu mai zic de complicarea codului de dragul sa iasa ceva, nu mai conteaza cum !

Edited by neagu_laurentiu, 06 August 2015 - 13:02.


Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate