Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: C Visual Studio 2010:ssä?

jflurrie [30.06.2010 19:06:57]

#

Oisko jollain antaa joku tutoriaali miten saan C:n toimimaan Visual Studio 2010:ssä?

Tässä on suoraan kirjasta otettu (copypastella) esimerkki:

/* Program 4.2 Drawing a box */
#include <stdio.h>
int main(void)
{
	printf("\n**************"); /* Draw the top of the box */
	for(int count = 1 ; count <= 8 ; ++count)
		printf("\n* *"); /* Draw the sides of the box */
	printf("\n**************\n"); /* Draw the bottom of the box */
	return 0;
}

Visual Studion mukaan siinä on 8 virhettä ja yhden varoituksenkin antaa:

Error 1 error C2143: syntax error : missing ';' before 'type'
Error 2 error C2143: syntax error : missing ';' before 'type'
Error 3 error C2143: syntax error : missing ')' before 'type'
Error 4 error C2143: syntax error : missing ';' before 'type'
Error 5 error C2065: 'count' : undeclared identifier
Warning 6 warning C4552: '<=' : operator has no effect; expected operator with side-effect
Error 7 error C2059: syntax error : ')'
Error 8 error C2065: 'count' : undeclared identifier
Error 9 error C2146: syntax error : missing ';' before identifier 'printf'

Ja yhtään noista en osaa korjata.

Miten tästä eteenpäin?

Grez [30.06.2010 19:30:12]

#

Kai olet valinnut, että "Compile as C"? Oletuksenahan siellä on "Compile as C++"

jflurrie [30.06.2010 19:48:52]

#

Aha. Nyt toimii. Oikea vastaus on tässä:

/* Program 4.2 Drawing a box */
#include <stdio.h>
int main(void)
{
	int count;
	printf("\n**************"); /* Draw the top of the box */
	for(count = 1; count <= 8; ++count)
	{
		printf("\n* *"); /* Draw the sides of the box */
	}
	printf("\n**************\n"); /* Draw the bottom of the box */
	getchar();
	return 0;
}

Metabolix [30.06.2010 20:22:27]

#

Alkuperäinen virhe oli siis tuo count-muuttujan määrittely for-silmukassa; oikeaoppisessa ANSI C:ssä kaikki muuttujat täytyy määritellä heti funktion alussa ennen mitään muuta sisältöä.

jflurrie [30.06.2010 20:34:41]

#

Joo, niinhän se menee. Visual Studio 2010 on toteuttanut C99:n vain osittain.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta