Är det ANSI C jag skriver med Xcode?

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Jag undrar om det är ANSI C jag skriver med XCode, Project/Standard Tool.
Om inte kan jag skriva det på något sätt?

Du använder kompilatorn gcc, som följer ANSI C standarden.

Ciryon

Denna kod håller jag på med just nu:

#include <stdio.h>
#include <math.h>

int main (void)
{	
	//deklarera variabler
	int money, sales, bonus, precent_bonus;
	char answer;

	//Hämta indata - tar inte hänsyn om inte heltal...
	printf("Försäljning månad: ");
	scanf("%d", &sales);
	
	//Anropa beräkningsfunktion
	precent_bonus = countBonus(sales);
	
	//Skriv ut månadsbonus
	printf("Bonus denna månad: %d\n", precent_bonus);
			
	//Fråga om igen.
	printf("Vill du mata in nytt månadsresultat? (J/N) ");
}

//Funktion för att räkna ut månadsbonus.
int countBonus(int sales)
{
	int precentBonus;
	
	if(sales>100000)
	{
		precentBonus = (sales-50000)*0.1;
	}
	else if(sales>=50000 && sales<100000)
	{
		precentBonus = sales*0.1;
	}
	else
	{
		precentBonus = 0;
	}

	return precentBonus;
}

Problemet ligger att jag inte får en till scanf att fungera.
Efter printf("Vill du mata in nytt månadsresultat? (J/N) ");
ska jag kolla om anvädaren trycker j eller n jag får inte koden att stanna upp med något kommando scanf eller getChar().

Har jag gjort något fel? Vad i så fall.

  • Medlem
  • 2004-10-14 02:37

Använder du

scanf("%c", &answer)

efter din printf är väl problemet att det hamnar ett line feed tecken från den tidigare inmatningen i answer eftersom %c tar alla tecken. Går att åtgärda med

scanf("%1s", &answer)

eller

scanf(" %c", &answer)

Jag har både försökt använda scanf och getChar().
getChar ger en snyggarae output än scanf, kan dessa två lida av samma problem?
Alltså detta extra tecken, scanf stänger alltså sin inläsning precis innan jag trycker enter på den första?
Jag har annan kod där jag har fler scanf efter varandra där jag inte får detta probem, visserligen matar jag inte int efter varandra då och då uppstår inte detta problem på samma sätt.

Tack Poyo!
Gillar du att lösa små C problem kan du hänga på tråden här för det lär komma fler...

  • Medlem
  • 2004-10-14 18:07

Vill du använda getchar() för att läsa in ditt svar vid andra frågan så får du se till att din tidigare scanf käkar upp line feed tecknet:

printf("Försäljning månad: ");
scanf("%d%*c", &sales);
1
Bevaka tråden